diff --git a/Core/Aggregate/FTDecayFunctions.cpp b/Core/Aggregate/FTDecayFunctions.cpp
index 37dfa870cc0a8234e6ae31d4ab416e5fd3aeeb19..84bf245842b0e1b7b7d66b50f4685765df93b949 100644
--- a/Core/Aggregate/FTDecayFunctions.cpp
+++ b/Core/Aggregate/FTDecayFunctions.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FTDecayFunctions.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 
 //===============1D======================
diff --git a/Core/Aggregate/FTDecayFunctions.h b/Core/Aggregate/FTDecayFunctions.h
index ff115757f1d24155bd91f757245337a51b314725..635d8ea309a9588fe508a3e1d3c697bf281ca91b 100644
--- a/Core/Aggregate/FTDecayFunctions.h
+++ b/Core/Aggregate/FTDecayFunctions.h
@@ -15,9 +15,9 @@
 #ifndef FTDECAYFUNCTIONS_H
 #define FTDECAYFUNCTIONS_H
 
-#include "ICloneable.h"
-#include "INode.h"
-#include "MathConstants.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Basics/MathConstants.h"
 #include <utility>
 
 //! Interface for a one-dimensional decay function,
diff --git a/Core/Aggregate/FTDistributions1D.cpp b/Core/Aggregate/FTDistributions1D.cpp
index c8a428e35f9989801a5780800b24f23a86576328..6f0cb905bcd0bb43997eba880350dc9fc06b0a63 100644
--- a/Core/Aggregate/FTDistributions1D.cpp
+++ b/Core/Aggregate/FTDistributions1D.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FTDistributions1D.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 namespace
diff --git a/Core/Aggregate/FTDistributions1D.h b/Core/Aggregate/FTDistributions1D.h
index 136dd651909340e7cbfb5bb2fe78a5b8ac27cf99..f7fa9cafb61cb246452dce557e6a87bb2ae2af81 100644
--- a/Core/Aggregate/FTDistributions1D.h
+++ b/Core/Aggregate/FTDistributions1D.h
@@ -15,9 +15,9 @@
 #ifndef FTDISTRIBUTIONS1D_H
 #define FTDISTRIBUTIONS1D_H
 
-#include "ICloneable.h"
-#include "IDistribution1DSampler.h"
-#include "INode.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Aggregate/IDistribution1DSampler.h"
+#include "Core/Parametrization/INode.h"
 
 //! Interface for a one-dimensional distribution, with normalization adjusted so that
 //! the Fourier transform evaluate(q) is a decay function that starts at evaluate(0)=1.
diff --git a/Core/Aggregate/FTDistributions2D.cpp b/Core/Aggregate/FTDistributions2D.cpp
index 2d498849697f067f3cd41978b8667601a0a16a8c..ef8a9d5770f200cb5097c2921008d6953a882031 100644
--- a/Core/Aggregate/FTDistributions2D.cpp
+++ b/Core/Aggregate/FTDistributions2D.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FTDistributions2D.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 //! Constructor of two-dimensional probability distribution.
diff --git a/Core/Aggregate/FTDistributions2D.h b/Core/Aggregate/FTDistributions2D.h
index 8e903c9368a0e5c6f9569ac1c78a393b1256d44e..352fcf496b753ed3741a6eeeb65d40dd062ad440 100644
--- a/Core/Aggregate/FTDistributions2D.h
+++ b/Core/Aggregate/FTDistributions2D.h
@@ -15,11 +15,11 @@
 #ifndef FTDISTRIBUTIONS2D_H
 #define FTDISTRIBUTIONS2D_H
 
-#include "ICloneable.h"
-#include "IDistribution2DSampler.h"
-#include "INode.h"
-#include "Integrator.h"
-#include "MathConstants.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Aggregate/IDistribution2DSampler.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Tools/Integrator.h"
+#include "Core/Basics/MathConstants.h"
 
 //! Interface for two-dimensional distributions in Fourier space.
 //! @ingroup distribution_internal
diff --git a/Core/Aggregate/FormFactorCoherentPart.cpp b/Core/Aggregate/FormFactorCoherentPart.cpp
index e802297fe0adf1483f165b3e0470ece92157ba5b..35b1756aa621e4869c977504151d346f4350ab22 100644
--- a/Core/Aggregate/FormFactorCoherentPart.cpp
+++ b/Core/Aggregate/FormFactorCoherentPart.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCoherentPart.h"
-#include "IFormFactor.h"
-#include "IFresnelMap.h"
-#include "ILayerRTCoefficients.h"
-#include "SimulationElement.h"
-#include "WavevectorInfo.h"
+#include "Core/Aggregate/FormFactorCoherentPart.h"
+#include "Core/Scattering/IFormFactor.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 FormFactorCoherentPart::FormFactorCoherentPart(IFormFactor* p_ff) : mP_ff(p_ff) {}
 
diff --git a/Core/Aggregate/FormFactorCoherentPart.h b/Core/Aggregate/FormFactorCoherentPart.h
index cff52c2c06dd742937ff36431fff0b473c7b233d..59012b1e321389066f7398664740d6afb5ff7500 100644
--- a/Core/Aggregate/FormFactorCoherentPart.h
+++ b/Core/Aggregate/FormFactorCoherentPart.h
@@ -15,9 +15,9 @@
 #ifndef FORMFACTORCOHERENTPART_H
 #define FORMFACTORCOHERENTPART_H
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "WinDllMacros.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 
 class IFresnelMap;
diff --git a/Core/Aggregate/FormFactorCoherentSum.cpp b/Core/Aggregate/FormFactorCoherentSum.cpp
index 7c6c21a248e2b22b2c0a0bf41c425394af3816ea..cd38aee513b1aa1e11dbde1f271c80bb83c7865c 100644
--- a/Core/Aggregate/FormFactorCoherentSum.cpp
+++ b/Core/Aggregate/FormFactorCoherentSum.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCoherentSum.h"
-#include "Exceptions.h"
-#include "SimulationElement.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 FormFactorCoherentSum::FormFactorCoherentSum(double abundance) : m_abundance(abundance) {}
 
diff --git a/Core/Aggregate/FormFactorCoherentSum.h b/Core/Aggregate/FormFactorCoherentSum.h
index 4814de4003a9b6e7f77c6c80fc87ef8a0bb56beb..00e4b486eac47d49fc6e8cad4fb8e8fa5a8247cd 100644
--- a/Core/Aggregate/FormFactorCoherentSum.h
+++ b/Core/Aggregate/FormFactorCoherentSum.h
@@ -15,9 +15,9 @@
 #ifndef FORMFACTORCOHERENTSUM_H
 #define FORMFACTORCOHERENTSUM_H
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "FormFactorCoherentPart.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Aggregate/FormFactorCoherentPart.h"
 #include <vector>
 
 class SimulationElement;
diff --git a/Core/Aggregate/IDistribution1DSampler.cpp b/Core/Aggregate/IDistribution1DSampler.cpp
index 973f32691b7d66e16e27b655821ccc2bb2a06676..07e31cf7cc13d82845ccf18c01c5e32bf9726db3 100644
--- a/Core/Aggregate/IDistribution1DSampler.cpp
+++ b/Core/Aggregate/IDistribution1DSampler.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IDistribution1DSampler.h"
+#include "Core/Aggregate/IDistribution1DSampler.h"
 #include <random>
 
 IDistribution1DSampler::~IDistribution1DSampler() = default;
diff --git a/Core/Aggregate/IDistribution1DSampler.h b/Core/Aggregate/IDistribution1DSampler.h
index d6565a7cdfff40584a366ccb9c9aeaaa7363d897..58a6c1296349b5f6036a0bc3a75f6cece1b72b00 100644
--- a/Core/Aggregate/IDistribution1DSampler.h
+++ b/Core/Aggregate/IDistribution1DSampler.h
@@ -15,7 +15,7 @@
 #ifndef IDISTRIBUTION1DSAMPLER_H
 #define IDISTRIBUTION1DSAMPLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class BA_CORE_API_ IDistribution1DSampler
 {
diff --git a/Core/Aggregate/IDistribution2DSampler.cpp b/Core/Aggregate/IDistribution2DSampler.cpp
index c3f7a7d7ea485fa65bf86526e60ca9cb5f5b6aa5..04d5ffdc60de5b1e8c2a9df828c13261c69eae6f 100644
--- a/Core/Aggregate/IDistribution2DSampler.cpp
+++ b/Core/Aggregate/IDistribution2DSampler.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IDistribution2DSampler.h"
+#include "Core/Aggregate/IDistribution2DSampler.h"
 #include <random>
 
 namespace
diff --git a/Core/Aggregate/IDistribution2DSampler.h b/Core/Aggregate/IDistribution2DSampler.h
index 132d6d4021e9fa69c004cebad861f5c45ce21064..8f27a6ac9fe1d94f2e7a9093f4145c703daa5521 100644
--- a/Core/Aggregate/IDistribution2DSampler.h
+++ b/Core/Aggregate/IDistribution2DSampler.h
@@ -15,7 +15,7 @@
 #ifndef IDISTRIBUTION2DSAMPLER_H
 #define IDISTRIBUTION2DSAMPLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <utility>
 
 class BA_CORE_API_ IDistribution2DSampler
diff --git a/Core/Aggregate/IInterferenceFunction.cpp b/Core/Aggregate/IInterferenceFunction.cpp
index 5dd3fbc4c63feaf8ab4e5c755e227e650f43fe86..c758ff7a480ef22d687e7a190369a7c55b6dbb1d 100644
--- a/Core/Aggregate/IInterferenceFunction.cpp
+++ b/Core/Aggregate/IInterferenceFunction.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IInterferenceFunction.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 #include <stdexcept>
 
diff --git a/Core/Aggregate/IInterferenceFunction.h b/Core/Aggregate/IInterferenceFunction.h
index cede31ab3a384f7b050871984e86573ca8aefa09..bb225037cfb99a042ffd0df75778ba22c88ad058 100644
--- a/Core/Aggregate/IInterferenceFunction.h
+++ b/Core/Aggregate/IInterferenceFunction.h
@@ -15,8 +15,8 @@
 #ifndef IINTERFERENCEFUNCTION_H
 #define IINTERFERENCEFUNCTION_H
 
-#include "ISample.h"
-#include "Vectors3D.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! Pure virtual base class of interference functions.
 //! @ingroup distribution_internal
diff --git a/Core/Aggregate/ILayout.cpp b/Core/Aggregate/ILayout.cpp
index d77d99454c610615eb9e2b3f6ec437cb91442ce6..8a71d01ef0d07c490935181f18561118646d387c 100644
--- a/Core/Aggregate/ILayout.cpp
+++ b/Core/Aggregate/ILayout.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ILayout.h"
+#include "Core/Aggregate/ILayout.h"
 
 ILayout::ILayout() : m_weight(1.0) {}
 
diff --git a/Core/Aggregate/ILayout.h b/Core/Aggregate/ILayout.h
index 5f8e4457ad321a8238deb25f988fcfc2523b7d77..01d1bbfb590966d45d5397f38d67af10d37a6ba6 100644
--- a/Core/Aggregate/ILayout.h
+++ b/Core/Aggregate/ILayout.h
@@ -15,8 +15,8 @@
 #ifndef ILAYOUT_H
 #define ILAYOUT_H
 
-#include "ISample.h"
-#include "SafePointerVector.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Tools/SafePointerVector.h"
 
 class IAbstractParticle;
 class IInterferenceFunction;
diff --git a/Core/Aggregate/IPeakShape.cpp b/Core/Aggregate/IPeakShape.cpp
index 52f4baf4264d2ff268308e77494f50f3e275be76..d92014cf5f9149e58bb4895c71834caa82358ad1 100644
--- a/Core/Aggregate/IPeakShape.cpp
+++ b/Core/Aggregate/IPeakShape.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IPeakShape.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
+#include "Core/Aggregate/IPeakShape.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
 
 #include <limits>
 
diff --git a/Core/Aggregate/IPeakShape.h b/Core/Aggregate/IPeakShape.h
index 773da53e003669720836010d8d70c9fc21a3dee8..a83b64dd85518f034cc0261b558bf8be1493393f 100644
--- a/Core/Aggregate/IPeakShape.h
+++ b/Core/Aggregate/IPeakShape.h
@@ -15,9 +15,9 @@
 #ifndef IPEAKSHAPE_H
 #define IPEAKSHAPE_H
 
-#include "ISample.h"
-#include "Integrator.h"
-#include "Vectors3D.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Tools/Integrator.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! Pure virtual interface class that defines the peak shape of a Bragg peak.
 //!
diff --git a/Core/Aggregate/InterferenceFunction1DLattice.cpp b/Core/Aggregate/InterferenceFunction1DLattice.cpp
index bd7e0af673f818e369df9dc70900eae97dc95d3b..2a0606c2e98711bb59d4906673bec71756d86054 100644
--- a/Core/Aggregate/InterferenceFunction1DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction1DLattice.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunction1DLattice.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "FTDecayFunctions.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunction1DLattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 
 namespace
diff --git a/Core/Aggregate/InterferenceFunction1DLattice.h b/Core/Aggregate/InterferenceFunction1DLattice.h
index 7ca027e1cc6050763bf7307cfa31cb0fd6de16e4..a4ecf8a9e2b941b30e81d90156eb3f78de66894d 100644
--- a/Core/Aggregate/InterferenceFunction1DLattice.h
+++ b/Core/Aggregate/InterferenceFunction1DLattice.h
@@ -15,8 +15,8 @@
 #ifndef INTERFERENCEFUNCTION1DLATTICE_H
 #define INTERFERENCEFUNCTION1DLATTICE_H
 
-#include "IInterferenceFunction.h"
-#include "Lattice1DParameters.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Lattice/Lattice1DParameters.h"
 
 class IFTDecayFunction1D;
 
diff --git a/Core/Aggregate/InterferenceFunction2DLattice.cpp b/Core/Aggregate/InterferenceFunction2DLattice.cpp
index b8f5ecae5378dc4e312a7f8cef9b0d7f62dbf275..8c2a20fe4e958b2cdf0e2d43d43c15e15777f8ae 100644
--- a/Core/Aggregate/InterferenceFunction2DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction2DLattice.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunction2DLattice.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 
 namespace
diff --git a/Core/Aggregate/InterferenceFunction2DLattice.h b/Core/Aggregate/InterferenceFunction2DLattice.h
index 49ba0d8f300c7e76795a2c37de2031fbacf85640..658165548c0ab021fe257662b99523578833aa94 100644
--- a/Core/Aggregate/InterferenceFunction2DLattice.h
+++ b/Core/Aggregate/InterferenceFunction2DLattice.h
@@ -15,10 +15,10 @@
 #ifndef INTERFERENCEFUNCTION2DLATTICE_H
 #define INTERFERENCEFUNCTION2DLATTICE_H
 
-#include "FTDecayFunctions.h"
-#include "IInterferenceFunction.h"
-#include "Integrator.h"
-#include "Lattice2D.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Tools/Integrator.h"
+#include "Core/Lattice/Lattice2D.h"
 
 //! Interference function of a 2D lattice.
 //! @ingroup interference
diff --git a/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp b/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
index 6d3654bfc8bca57fc343ad537e8508e97e0cc3e2..e0443004f8836a67168b248184f9c1af075627fc 100644
--- a/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
+++ b/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunction2DParaCrystal.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(const Lattice2D& lattice,
diff --git a/Core/Aggregate/InterferenceFunction2DParaCrystal.h b/Core/Aggregate/InterferenceFunction2DParaCrystal.h
index c67bb8c7e18b78148ab1856f7174a483318398ee..51d43333affc5b459248424247c56d4b207b8f99 100644
--- a/Core/Aggregate/InterferenceFunction2DParaCrystal.h
+++ b/Core/Aggregate/InterferenceFunction2DParaCrystal.h
@@ -15,11 +15,11 @@
 #ifndef INTERFERENCEFUNCTION2DPARACRYSTAL_H
 #define INTERFERENCEFUNCTION2DPARACRYSTAL_H
 
-#include "Complex.h"
-#include "FTDistributions2D.h"
-#include "IInterferenceFunction.h"
-#include "Integrator.h"
-#include "Lattice2D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Tools/Integrator.h"
+#include "Core/Lattice/Lattice2D.h"
 #include <memory>
 
 class IFTDistribution2D;
diff --git a/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp b/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp
index 6dff14ce218b46601022934ae28a4471fbe53478..58437373c154cd57bdb76417360d2ff32cda141d 100644
--- a/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunction2DSuperLattice.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "InterferenceFunctionNone.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunction2DSuperLattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 #include <limits>
 
diff --git a/Core/Aggregate/InterferenceFunction2DSuperLattice.h b/Core/Aggregate/InterferenceFunction2DSuperLattice.h
index 1a85ae276a9ab5a7a37c9333cca5346756cb935a..ac5680e99fd6e399ecfce89431e8b7d34e238ace 100644
--- a/Core/Aggregate/InterferenceFunction2DSuperLattice.h
+++ b/Core/Aggregate/InterferenceFunction2DSuperLattice.h
@@ -15,9 +15,9 @@
 #ifndef INTERFERENCEFUNCTION2DSUPERLATTICE_H
 #define INTERFERENCEFUNCTION2DSUPERLATTICE_H
 
-#include "IInterferenceFunction.h"
-#include "Integrator.h"
-#include "Lattice2D.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Tools/Integrator.h"
+#include "Core/Lattice/Lattice2D.h"
 
 //! Interference function of a 2D superlattice with a configurable interference function for
 //! each lattice site.
diff --git a/Core/Aggregate/InterferenceFunction3DLattice.cpp b/Core/Aggregate/InterferenceFunction3DLattice.cpp
index 5f8c51dd4b8de0fa9ae41d550cee8a2d8c8d44ba..e50462ce658abb8fabab82239aa0a705ab6babee 100644
--- a/Core/Aggregate/InterferenceFunction3DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunction3DLattice.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunction3DLattice.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "IPeakShape.h"
+#include "Core/Aggregate/InterferenceFunction3DLattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/IPeakShape.h"
 #include <algorithm>
 
 InterferenceFunction3DLattice::InterferenceFunction3DLattice(const Lattice& lattice)
diff --git a/Core/Aggregate/InterferenceFunction3DLattice.h b/Core/Aggregate/InterferenceFunction3DLattice.h
index 7c60d5faa0b45177aa0b80ab4f679d4ac5a7ea91..c6440b66fad6db4a5f768eeda030b46216478bdd 100644
--- a/Core/Aggregate/InterferenceFunction3DLattice.h
+++ b/Core/Aggregate/InterferenceFunction3DLattice.h
@@ -15,8 +15,8 @@
 #ifndef INTERFERENCEFUNCTION3DLATTICE_H
 #define INTERFERENCEFUNCTION3DLATTICE_H
 
-#include "IInterferenceFunction.h"
-#include "Lattice.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Lattice/Lattice.h"
 
 class IPeakShape;
 
diff --git a/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp b/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp
index ce185fec3f40c63f8f5787bff92a8ce1da9b9165..ce808224762c5241b79d8224aefbe071c7d05d19 100644
--- a/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunctionFinite2DLattice.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionFinite2DLattice.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunctionFinite2DLattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 #include <limits>
 
diff --git a/Core/Aggregate/InterferenceFunctionFinite2DLattice.h b/Core/Aggregate/InterferenceFunctionFinite2DLattice.h
index 23ae272b0535822d27d007e332a1f757b8b79e0a..951649afc72982171b7d60ee11734f92663d402a 100644
--- a/Core/Aggregate/InterferenceFunctionFinite2DLattice.h
+++ b/Core/Aggregate/InterferenceFunctionFinite2DLattice.h
@@ -15,9 +15,9 @@
 #ifndef INTERFERENCEFUNCTIONFINITE2DLATTICE_H
 #define INTERFERENCEFUNCTIONFINITE2DLATTICE_H
 
-#include "IInterferenceFunction.h"
-#include "Integrator.h"
-#include "Lattice2D.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Tools/Integrator.h"
+#include "Core/Lattice/Lattice2D.h"
 
 //! Interference function of a finite 2D lattice.
 //! @ingroup interference
diff --git a/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp b/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp
index a31cf7b60aaed720bd2ead8e779145cf21aa37f9..136d2172717d6799ad97ad2f23bf9a875ace4e63 100644
--- a/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp
+++ b/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionFinite3DLattice.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunctionFinite3DLattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 #include <limits>
 
diff --git a/Core/Aggregate/InterferenceFunctionFinite3DLattice.h b/Core/Aggregate/InterferenceFunctionFinite3DLattice.h
index 93439a28b9b229c0a1c0429240a5e81bce3d0b8d..83d348136fcc931a679a4dc794b502eb744ab22f 100644
--- a/Core/Aggregate/InterferenceFunctionFinite3DLattice.h
+++ b/Core/Aggregate/InterferenceFunctionFinite3DLattice.h
@@ -15,8 +15,8 @@
 #ifndef INTERFERENCEFUNCTIONFINITE3DLATTICE_H
 #define INTERFERENCEFUNCTIONFINITE3DLATTICE_H
 
-#include "IInterferenceFunction.h"
-#include "Lattice.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Lattice/Lattice.h"
 
 //! Interference function of a finite 3D lattice.
 //! @ingroup interference
diff --git a/Core/Aggregate/InterferenceFunctionHardDisk.cpp b/Core/Aggregate/InterferenceFunctionHardDisk.cpp
index 24c20455f1d67ab237a4bdcaed5a3a80e1e6c77c..17548299a8d1554bc87453a22630a84bf5b5f75f 100644
--- a/Core/Aggregate/InterferenceFunctionHardDisk.cpp
+++ b/Core/Aggregate/InterferenceFunctionHardDisk.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionHardDisk.h"
-#include "BornAgainNamespace.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunctionHardDisk.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <cmath>
 
 namespace
diff --git a/Core/Aggregate/InterferenceFunctionHardDisk.h b/Core/Aggregate/InterferenceFunctionHardDisk.h
index 8ceb678b6ca7be6cb7ec27edd4c8c6343348686e..7438d960fc29c610e7f48a43b9fa9685385f39a1 100644
--- a/Core/Aggregate/InterferenceFunctionHardDisk.h
+++ b/Core/Aggregate/InterferenceFunctionHardDisk.h
@@ -15,8 +15,8 @@
 #ifndef INTERFERENCEFUNCTIONHARDDISK_H
 #define INTERFERENCEFUNCTIONHARDDISK_H
 
-#include "IInterferenceFunction.h"
-#include "Integrator.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Tools/Integrator.h"
 
 //! Percus-Yevick hard disk interference function.
 //!
diff --git a/Core/Aggregate/InterferenceFunctionNone.cpp b/Core/Aggregate/InterferenceFunctionNone.cpp
index 9706273a8cd164a5096cdb0706d7b0196a41ff7b..fc4880a13e162f066271c41f307a6e62bf240e77 100644
--- a/Core/Aggregate/InterferenceFunctionNone.cpp
+++ b/Core/Aggregate/InterferenceFunctionNone.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionNone.h"
-#include "BornAgainNamespace.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/Basics/BornAgainNamespace.h"
 
 InterferenceFunctionNone::InterferenceFunctionNone()
 {
diff --git a/Core/Aggregate/InterferenceFunctionNone.h b/Core/Aggregate/InterferenceFunctionNone.h
index 15dbafbd751504d7654d98e6fff8e1a294c83091..6184366610e93de881a9f6054216865f0be38492 100644
--- a/Core/Aggregate/InterferenceFunctionNone.h
+++ b/Core/Aggregate/InterferenceFunctionNone.h
@@ -15,7 +15,7 @@
 #ifndef INTERFERENCEFUNCTIONNONE_H
 #define INTERFERENCEFUNCTIONNONE_H
 
-#include "IInterferenceFunction.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
 
 //! Default interference function (i.e. absence of any interference).
 //! @ingroup interference
diff --git a/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
index 7a55f096f4cff2391f51cb2d3cf6089370fb3e31..445755817ebcee15fc226a5db104482828441240 100644
--- a/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
+++ b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 //! Constructor of interference function of radial paracrystal.
diff --git a/Core/Aggregate/InterferenceFunctionRadialParaCrystal.h b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.h
index f6dbd894c11a3636abf41c99cf87b36a7ab37da3..8bfb74f00fa66db7539f192d851564619acf7998 100644
--- a/Core/Aggregate/InterferenceFunctionRadialParaCrystal.h
+++ b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.h
@@ -15,9 +15,9 @@
 #ifndef INTERFERENCEFUNCTIONRADIALPARACRYSTAL_H
 #define INTERFERENCEFUNCTIONRADIALPARACRYSTAL_H
 
-#include "Complex.h"
-#include "FTDistributions1D.h"
-#include "IInterferenceFunction.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
 #include <memory>
 
 //! Interference function of radial paracrystal.
diff --git a/Core/Aggregate/InterferenceFunctionTwin.cpp b/Core/Aggregate/InterferenceFunctionTwin.cpp
index 9825e8a80a4325a8c9a58dce0967e58257ac315d..1f74d967945cfa4c0d9b5b9b2999c63876b53bbd 100644
--- a/Core/Aggregate/InterferenceFunctionTwin.cpp
+++ b/Core/Aggregate/InterferenceFunctionTwin.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionTwin.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/InterferenceFunctionTwin.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <cmath>
 
 InterferenceFunctionTwin::InterferenceFunctionTwin(const kvector_t& direction, double mean_distance,
diff --git a/Core/Aggregate/InterferenceFunctionTwin.h b/Core/Aggregate/InterferenceFunctionTwin.h
index d7c34d41a7c803702c6f47d92ba0ad88cf0c018b..af3d72dd873fed6ae746cc162056c0f8d0e17c3d 100644
--- a/Core/Aggregate/InterferenceFunctionTwin.h
+++ b/Core/Aggregate/InterferenceFunctionTwin.h
@@ -15,7 +15,7 @@
 #ifndef INTERFERENCEFUNCTIONTWIN_H
 #define INTERFERENCEFUNCTIONTWIN_H
 
-#include "IInterferenceFunction.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
 
 //! Interference function for two particles at a mean distance and given standard deviation
 //! from each other in a given direction.
diff --git a/Core/Aggregate/ParticleLayout.cpp b/Core/Aggregate/ParticleLayout.cpp
index b4d7f69e23c4a2fc9a0c59b300b4a041318ebc5a..9226ba4ffed5c59e6ff74331ff73e6f86a2d4650 100644
--- a/Core/Aggregate/ParticleLayout.cpp
+++ b/Core/Aggregate/ParticleLayout.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "ParticleLayout.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "IInterferenceFunction.h"
-#include "InterferenceFunctionNone.h"
-#include "ParameterPool.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "RealParameter.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Parametrization/RealParameter.h"
 
 namespace
 {
diff --git a/Core/Aggregate/ParticleLayout.h b/Core/Aggregate/ParticleLayout.h
index 4e93d96fd90c371e88a8f4007a82db20f69ba51f..ca25594d123d3904f764bef451410238f90a0ee9 100644
--- a/Core/Aggregate/ParticleLayout.h
+++ b/Core/Aggregate/ParticleLayout.h
@@ -15,9 +15,9 @@
 #ifndef PARTICLELAYOUT_H
 #define PARTICLELAYOUT_H
 
-#include "ILayout.h"
-#include "Rotations.h"
-#include "Vectors3D.h"
+#include "Core/Aggregate/ILayout.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 
 class IAbstractParticle;
diff --git a/Core/Basics/Exceptions.cpp b/Core/Basics/Exceptions.cpp
index fb83b2137147fa71fb2beedb0cc5ea58fe1c8c8c..424b9aae67f5260681a07c4a24c7f1021afb2623 100644
--- a/Core/Basics/Exceptions.cpp
+++ b/Core/Basics/Exceptions.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Exceptions.h"
+#include "Core/Basics/Exceptions.h"
 #include <iostream>
 
 namespace Exceptions
diff --git a/Core/Basics/Exceptions.h b/Core/Basics/Exceptions.h
index c837ce9c5160081e3a2ec2c7f6fca3204fa0b2d4..b9bbf4643336753d74211b96af86b24b152e8e29 100644
--- a/Core/Basics/Exceptions.h
+++ b/Core/Basics/Exceptions.h
@@ -15,7 +15,7 @@
 #ifndef EXCEPTIONS_H
 #define EXCEPTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <stdexcept>
 #include <string>
 
diff --git a/Core/Basics/ICloneable.cpp b/Core/Basics/ICloneable.cpp
index b4bcbe68205faad8d6a9dfcc627c78ef85df1a0f..c54a7b8e547cca1e8dcebb72025d60cbeb89fee6 100644
--- a/Core/Basics/ICloneable.cpp
+++ b/Core/Basics/ICloneable.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 
 // To emit vtable in this translation unit (see warning weak-vtables):
 ICloneable::ICloneable() = default;
diff --git a/Core/Basics/ICloneable.h b/Core/Basics/ICloneable.h
index 22b4af7acff7cb0f476f20dc2f111bdca16bba8d..e895e926b6e40f5e683c5ba4152841c8d1743555 100644
--- a/Core/Basics/ICloneable.h
+++ b/Core/Basics/ICloneable.h
@@ -15,7 +15,7 @@
 #ifndef ICLONEABLE_H
 #define ICLONEABLE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Interface for polymorphic classes that should not be copied, except by explicit cloning.
 //!
diff --git a/Core/Basics/INamed.cpp b/Core/Basics/INamed.cpp
index 68e54f6ba96a39fe61bb4dd6d1f9ea715c8bba83..f216f4873ebeb1b0ac1b4b9c6f6c5a3f332e5c34 100644
--- a/Core/Basics/INamed.cpp
+++ b/Core/Basics/INamed.cpp
@@ -12,6 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "INamed.h"
+#include "Core/Basics/INamed.h"
 
 INamed::~INamed() = default;
diff --git a/Core/Basics/INamed.h b/Core/Basics/INamed.h
index c872b740f17f47e2a571fa8f54e34ec0f7d04976..745deb2875b9e7be16ac839c534ffcbe0ef35dd0 100644
--- a/Core/Basics/INamed.h
+++ b/Core/Basics/INamed.h
@@ -15,7 +15,7 @@
 #ifndef INAMED_H
 #define INAMED_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 //! Interface for named objects.
diff --git a/Core/Beam/Beam.cpp b/Core/Beam/Beam.cpp
index 410bb1a937a40e85441da3bf62c38d8bc49ffab0..b77a18b95084220bb36103765b1eb68f1a3cf2c7 100644
--- a/Core/Beam/Beam.cpp
+++ b/Core/Beam/Beam.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "Complex.h"
-#include "Exceptions.h"
-#include "FootprintFactorGaussian.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 
 // Allow for 90 degrees by adding a relatively small constant to pi/2
 static constexpr double INCLINATION_LIMIT = M_PI_2 + 1e-10;
diff --git a/Core/Beam/Beam.h b/Core/Beam/Beam.h
index 03a05517b0e7f51a2b0597f6860ecf9abfeb692f..e7161de99772ce25c63a6e5723ebe412c3b13f95 100644
--- a/Core/Beam/Beam.h
+++ b/Core/Beam/Beam.h
@@ -15,9 +15,9 @@
 #ifndef BEAM_H
 #define BEAM_H
 
-#include "EigenCore.h"
-#include "INode.h"
-#include "Vectors3D.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Vector/Vectors3D.h"
 
 class IFootprintFactor;
 
diff --git a/Core/Beam/FootprintFactorGaussian.cpp b/Core/Beam/FootprintFactorGaussian.cpp
index ec2a4900c24f68560c1c33118c77efb4337ac30d..9d2c53e424dd0c85083dadd956429f81c6dc6d4a 100644
--- a/Core/Beam/FootprintFactorGaussian.cpp
+++ b/Core/Beam/FootprintFactorGaussian.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FootprintFactorGaussian.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "PythonFormatting.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Export/PythonFormatting.h"
 
 FootprintFactorGaussian::FootprintFactorGaussian(double width_ratio) : IFootprintFactor(width_ratio)
 {
diff --git a/Core/Beam/FootprintFactorGaussian.h b/Core/Beam/FootprintFactorGaussian.h
index 1fbd898468144b191bbaf248d4169be152c12ea5..a93298d316e6663d6a1f16bb39168f7249e40cdd 100644
--- a/Core/Beam/FootprintFactorGaussian.h
+++ b/Core/Beam/FootprintFactorGaussian.h
@@ -15,7 +15,7 @@
 #ifndef FOOTPRINTFACTORGAUSSIAN_H
 #define FOOTPRINTFACTORGAUSSIAN_H
 
-#include "IFootprintFactor.h"
+#include "Core/Beam/IFootprintFactor.h"
 
 //! Calculates footprint coefficient for a gaussian beam
 //! Beam width is interpreted as the full width on the level
diff --git a/Core/Beam/FootprintFactorSquare.cpp b/Core/Beam/FootprintFactorSquare.cpp
index c18747e75d658e2f20af3839f946e220fc138a37..cd3651dcc2f2f79576ae8631d9c9ce8717c01ceb 100644
--- a/Core/Beam/FootprintFactorSquare.cpp
+++ b/Core/Beam/FootprintFactorSquare.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FootprintFactorSquare.h"
-#include "MathConstants.h"
-#include "PythonFormatting.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Export/PythonFormatting.h"
 #include <algorithm>
 #include <stdexcept>
 
diff --git a/Core/Beam/FootprintFactorSquare.h b/Core/Beam/FootprintFactorSquare.h
index e65caa7ef3477a402c6b74d8e622f2a7dbd68af0..2be9166622c2e704e22f400c7933dfc47a28221e 100644
--- a/Core/Beam/FootprintFactorSquare.h
+++ b/Core/Beam/FootprintFactorSquare.h
@@ -15,7 +15,7 @@
 #ifndef FOOTPRINTFACTORSQUARE_H_
 #define FOOTPRINTFACTORSQUARE_H_
 
-#include "IFootprintFactor.h"
+#include "Core/Beam/IFootprintFactor.h"
 
 //! Calculates footprint coefficient for a square beam
 //! @ingroup beam
diff --git a/Core/Beam/IFootprintFactor.cpp b/Core/Beam/IFootprintFactor.cpp
index 98a555d2078ce83460fc1c66d7115cf2d96a6fb1..5ab5b7457f2f470505e7568d577bb79614cc7b6d 100644
--- a/Core/Beam/IFootprintFactor.cpp
+++ b/Core/Beam/IFootprintFactor.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IFootprintFactor.h"
-#include "RealParameter.h"
+#include "Core/Beam/IFootprintFactor.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <stdexcept>
 
 IFootprintFactor::IFootprintFactor(double width_ratio) : m_width_ratio(width_ratio)
diff --git a/Core/Beam/IFootprintFactor.h b/Core/Beam/IFootprintFactor.h
index 62d59a94069fa9306d1b8ca8f2d326ef848778c1..251e14e76ae49f984b429e1cee985dbce6cd39e5 100644
--- a/Core/Beam/IFootprintFactor.h
+++ b/Core/Beam/IFootprintFactor.h
@@ -15,8 +15,8 @@
 #ifndef IFOOTPRINTFACTOR_H_
 #define IFOOTPRINTFACTOR_H_
 
-#include "ICloneable.h"
-#include "INode.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
 
 class MultiLayer;
 class Beam;
diff --git a/Core/Binning/Bin.cpp b/Core/Binning/Bin.cpp
index 659b936f98a2bc67f2767fd8ce0c5966ea888b66..8c9b2a4c899ca981430639470942964cb750176f 100644
--- a/Core/Binning/Bin.cpp
+++ b/Core/Binning/Bin.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Bin.h"
+#include "Core/Binning/Bin.h"
 
 bool BinContains(const Bin1D& bin, double value)
 {
diff --git a/Core/Binning/Bin.h b/Core/Binning/Bin.h
index 61cfd529aa7032b61a3d218c17626cca1d73d989..dacd52b7313dc2e5e2b1c55ffe9c744e12822279 100644
--- a/Core/Binning/Bin.h
+++ b/Core/Binning/Bin.h
@@ -15,7 +15,7 @@
 #ifndef BIN_H
 #define BIN_H
 
-#include "Vectors3D.h"
+#include "Core/Vector/Vectors3D.h"
 
 struct BA_CORE_API_ Bin1D {
     Bin1D() : m_lower(0), m_upper(0) {}
diff --git a/Core/Binning/ConstKBinAxis.cpp b/Core/Binning/ConstKBinAxis.cpp
index 6d14e27865d0f8f285af3536222e62672fb9f9a9..3c599f20606f4b957ca5b0bbce73a8606c556976 100644
--- a/Core/Binning/ConstKBinAxis.cpp
+++ b/Core/Binning/ConstKBinAxis.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ConstKBinAxis.h"
-#include "Exceptions.h"
-#include "Numeric.h"
+#include "Core/Binning/ConstKBinAxis.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Tools/Numeric.h"
 #include <iomanip>
 
 ConstKBinAxis::ConstKBinAxis(const std::string& name, size_t nbins)
diff --git a/Core/Binning/ConstKBinAxis.h b/Core/Binning/ConstKBinAxis.h
index 3fce474638f22c7de740581394e4573d02d668f9..bb782ca7a0c783ed0f26f4d35fa2fb23d3ec1260 100644
--- a/Core/Binning/ConstKBinAxis.h
+++ b/Core/Binning/ConstKBinAxis.h
@@ -15,7 +15,7 @@
 #ifndef CONSTKBINAXIS_H
 #define CONSTKBINAXIS_H
 
-#include "VariableBinAxis.h"
+#include "Core/Binning/VariableBinAxis.h"
 
 //! Axis with fixed bin size in sin(angle) space.
 //! @ingroup tools
diff --git a/Core/Binning/CustomBinAxis.cpp b/Core/Binning/CustomBinAxis.cpp
index 4cff923d98f39b0ba1f15b5435a8c59b8e020533..66de84376cfbf2ad10c1fc230334079f7612c63d 100644
--- a/Core/Binning/CustomBinAxis.cpp
+++ b/Core/Binning/CustomBinAxis.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "CustomBinAxis.h"
-#include "Exceptions.h"
-#include "Numeric.h"
+#include "Core/Binning/CustomBinAxis.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Tools/Numeric.h"
 #include <iomanip>
 #include <limits>
 
diff --git a/Core/Binning/CustomBinAxis.h b/Core/Binning/CustomBinAxis.h
index 61e4f1a0ee948cecbbac8e9e05022ffff461831f..0635e364ab0fc2b632f7bbec7aa68fd0fcf96694 100644
--- a/Core/Binning/CustomBinAxis.h
+++ b/Core/Binning/CustomBinAxis.h
@@ -15,7 +15,7 @@
 #ifndef CUSTOMBINAXIS_H
 #define CUSTOMBINAXIS_H
 
-#include "VariableBinAxis.h"
+#include "Core/Binning/VariableBinAxis.h"
 
 //! Axis with fixed bin size in sin(angle) space used for numerical comparison with IsGisaxs.
 //! The main feature of the axis is that it produces zero bin sizes.
diff --git a/Core/Binning/FixedBinAxis.cpp b/Core/Binning/FixedBinAxis.cpp
index cbef2c1a0ee1a5affe9281c8a06db6ac77744fbf..5aa26e3a84e5484b79208f521f2f6f132d5447a3 100644
--- a/Core/Binning/FixedBinAxis.cpp
+++ b/Core/Binning/FixedBinAxis.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FixedBinAxis.h"
-#include "Exceptions.h"
-#include "Numeric.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Tools/Numeric.h"
 #include <iomanip>
 #include <limits>
 
diff --git a/Core/Binning/FixedBinAxis.h b/Core/Binning/FixedBinAxis.h
index e91a1b858b449a2ed43d583629a2739bf5fb1726..ae006daa80d338a51b333c538d2997957ebdd5bd 100644
--- a/Core/Binning/FixedBinAxis.h
+++ b/Core/Binning/FixedBinAxis.h
@@ -15,7 +15,7 @@
 #ifndef FIXEDBINAXIS_H
 #define FIXEDBINAXIS_H
 
-#include "IAxis.h"
+#include "Core/Binning/IAxis.h"
 
 //! Axis with fixed bin size.
 //! @ingroup tools
diff --git a/Core/Binning/IAxis.cpp b/Core/Binning/IAxis.cpp
index bfb17c58d055ec4df85eb5a3d1fe88fd3602781c..fc398882deeada140ba2d56e253b097d8f2b7597 100644
--- a/Core/Binning/IAxis.cpp
+++ b/Core/Binning/IAxis.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IAxis.h"
-#include "Exceptions.h"
+#include "Core/Binning/IAxis.h"
+#include "Core/Basics/Exceptions.h"
 
 bool IAxis::equals(const IAxis& other) const
 {
diff --git a/Core/Binning/IAxis.h b/Core/Binning/IAxis.h
index 552280fcdb31b75fcbb26c544de7f1672a114f79..53dcac306f4f1a50e3d0267868e41afc6fe00a6f 100644
--- a/Core/Binning/IAxis.h
+++ b/Core/Binning/IAxis.h
@@ -15,7 +15,7 @@
 #ifndef IAXIS_H
 #define IAXIS_H
 
-#include "Bin.h"
+#include "Core/Binning/Bin.h"
 #include <vector>
 
 //! Interface for one-dimensional axes.
diff --git a/Core/Binning/IPixel.h b/Core/Binning/IPixel.h
index f77ab86c401233b4176323af18db42a78f994964..fcd6245aec29f3832514262f803aaa3407c34dc8 100644
--- a/Core/Binning/IPixel.h
+++ b/Core/Binning/IPixel.h
@@ -15,8 +15,8 @@
 #ifndef IPIXEL_H
 #define IPIXEL_H
 
-#include "Vectors3D.h"
-#include "WinDllMacros.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Interface for a function that maps [0,1]x[0,1] to the kvectors in a pixel.
 //! @ingroup detector
diff --git a/Core/Binning/PointwiseAxis.cpp b/Core/Binning/PointwiseAxis.cpp
index 3d6fa61f25031626df8ce7e33dd9f10b1398c80c..001bf87fc279bd15a675a9b9f32cc90abd681090 100644
--- a/Core/Binning/PointwiseAxis.cpp
+++ b/Core/Binning/PointwiseAxis.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "PointwiseAxis.h"
+#include "Core/Binning/PointwiseAxis.h"
 #include <algorithm>
 #include <iomanip>
 #include <stdexcept>
diff --git a/Core/Binning/PointwiseAxis.h b/Core/Binning/PointwiseAxis.h
index 96d8bf5f5d23524c499410a9f205efd98379053f..41aaf143789de3372f69c1050fe95dfc2491dc03 100644
--- a/Core/Binning/PointwiseAxis.h
+++ b/Core/Binning/PointwiseAxis.h
@@ -15,7 +15,7 @@
 #ifndef POINTWISEAXIS_H
 #define POINTWISEAXIS_H
 
-#include "IAxis.h"
+#include "Core/Binning/IAxis.h"
 
 //! Axis containing arbitrary (non-equidistant) coordinate values.
 //! Lower boundary of the first bin and upper boundary of the
diff --git a/Core/Binning/VariableBinAxis.cpp b/Core/Binning/VariableBinAxis.cpp
index efebcdae3f4e64b7a8ef7d9009294461bc33bd5f..df4542e1f23f393ce852bdd7a8805790cdf90e43 100644
--- a/Core/Binning/VariableBinAxis.cpp
+++ b/Core/Binning/VariableBinAxis.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "VariableBinAxis.h"
-#include "Exceptions.h"
-#include "Numeric.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Tools/Numeric.h"
 #include <algorithm>
 #include <iomanip>
 
diff --git a/Core/Binning/VariableBinAxis.h b/Core/Binning/VariableBinAxis.h
index 83c67b2f9e1d86f00278ad18eb10eaeeae579a32..456ce3fcc52c8e2b7b532e4ab1943fd0377e964e 100644
--- a/Core/Binning/VariableBinAxis.h
+++ b/Core/Binning/VariableBinAxis.h
@@ -15,7 +15,7 @@
 #ifndef VARIABLEBINAXIS_H
 #define VARIABLEBINAXIS_H
 
-#include "IAxis.h"
+#include "Core/Binning/IAxis.h"
 
 //! Axis with variable bin size.
 //! @ingroup tools
diff --git a/Core/Computation/ConstantBackground.cpp b/Core/Computation/ConstantBackground.cpp
index 62bd58d8ffb7ba2ddb606726054f6cf10f07661b..7c0af047521243d2a3db85e34f91ca62f14b9bcf 100644
--- a/Core/Computation/ConstantBackground.cpp
+++ b/Core/Computation/ConstantBackground.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ConstantBackground.h"
-#include "RealParameter.h"
+#include "Core/Computation/ConstantBackground.h"
+#include "Core/Parametrization/RealParameter.h"
 
 ConstantBackground::ConstantBackground(double background_value)
     : m_background_value(background_value)
diff --git a/Core/Computation/ConstantBackground.h b/Core/Computation/ConstantBackground.h
index d25c31eb3b806470e34d34205e6566a0ccff7ef5..d528904645b0493fc02a402370c97b543922bda3 100644
--- a/Core/Computation/ConstantBackground.h
+++ b/Core/Computation/ConstantBackground.h
@@ -15,7 +15,7 @@
 #ifndef CONSTANTBACKGROUND_H
 #define CONSTANTBACKGROUND_H
 
-#include "IBackground.h"
+#include "Core/Computation/IBackground.h"
 
 //! Class representing a constant background signal
 //!
diff --git a/Core/Computation/DWBAComputation.cpp b/Core/Computation/DWBAComputation.cpp
index 3e9011ee4d0b7477141b793aaf20049c0a39fb3e..100e3601183541067135175a19a1c9edd5c13367 100644
--- a/Core/Computation/DWBAComputation.cpp
+++ b/Core/Computation/DWBAComputation.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "DWBAComputation.h"
-#include "GISASSpecularComputation.h"
-#include "IFresnelMap.h"
-#include "MultiLayer.h"
-#include "ParticleLayoutComputation.h"
-#include "ProcessedLayout.h"
-#include "ProcessedSample.h"
-#include "ProgressHandler.h"
-#include "RoughMultiLayerComputation.h"
-#include "SimulationElement.h"
+#include "Core/Computation/DWBAComputation.h"
+#include "Core/Computation/GISASSpecularComputation.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ParticleLayoutComputation.h"
+#include "Core/Computation/ProcessedLayout.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Computation/ProgressHandler.h"
+#include "Core/Computation/RoughMultiLayerComputation.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 static_assert(std::is_copy_constructible<DWBAComputation>::value == false,
               "DWBAComputation should not be copy constructable");
diff --git a/Core/Computation/DWBAComputation.h b/Core/Computation/DWBAComputation.h
index 11b009da6cdc019a5f40f2dd33f2f8a24d077fe5..14f5129f0c9255aa05a10f5546108205a19b0551 100644
--- a/Core/Computation/DWBAComputation.h
+++ b/Core/Computation/DWBAComputation.h
@@ -15,9 +15,9 @@
 #ifndef MAINCOMPUTATION_H
 #define MAINCOMPUTATION_H
 
-#include "DWBASingleComputation.h"
-#include "IComputation.h"
-#include "SimulationOptions.h"
+#include "Core/Computation/DWBASingleComputation.h"
+#include "Core/Computation/IComputation.h"
+#include "Core/Parametrization/SimulationOptions.h"
 
 class MultiLayer;
 class SimulationElement;
diff --git a/Core/Computation/DWBASingleComputation.cpp b/Core/Computation/DWBASingleComputation.cpp
index d6d3dbfb4cd103785e2c4080cb158adbe328e296..bd7da053e1c8486dbf8f401f1ed4b8d7765ff436 100644
--- a/Core/Computation/DWBASingleComputation.cpp
+++ b/Core/Computation/DWBASingleComputation.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "DWBASingleComputation.h"
-#include "DelayedProgressCounter.h"
-#include "GISASSpecularComputation.h"
-#include "ParticleLayoutComputation.h"
-#include "RoughMultiLayerComputation.h"
+#include "Core/Computation/DWBASingleComputation.h"
+#include "Core/Computation/DelayedProgressCounter.h"
+#include "Core/Computation/GISASSpecularComputation.h"
+#include "Core/Computation/ParticleLayoutComputation.h"
+#include "Core/Computation/RoughMultiLayerComputation.h"
 
 DWBASingleComputation::DWBASingleComputation() = default;
 
diff --git a/Core/Computation/DWBASingleComputation.h b/Core/Computation/DWBASingleComputation.h
index d4db5171224d2c20f7be2d1fdb832f78cb4329bf..9052dd562adf31db41e0b3132a1a3b9bfdada7b8 100644
--- a/Core/Computation/DWBASingleComputation.h
+++ b/Core/Computation/DWBASingleComputation.h
@@ -15,7 +15,7 @@
 #ifndef DWBASINGLECOMPUTATION_H
 #define DWBASINGLECOMPUTATION_H
 
-#include "HomogeneousRegion.h"
+#include "Core/Particle/HomogeneousRegion.h"
 #include <map>
 #include <memory>
 #include <vector>
diff --git a/Core/Computation/DelayedProgressCounter.cpp b/Core/Computation/DelayedProgressCounter.cpp
index 98c600ef10a3572b765a79e57dd32e6d37c712ef..f738af660698ba838d70c7340fc5e476a49630c0 100644
--- a/Core/Computation/DelayedProgressCounter.cpp
+++ b/Core/Computation/DelayedProgressCounter.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DelayedProgressCounter.h"
-#include "ProgressHandler.h"
+#include "Core/Computation/DelayedProgressCounter.h"
+#include "Core/Computation/ProgressHandler.h"
 
 DelayedProgressCounter::DelayedProgressCounter(ProgressHandler* p_progress, size_t interval)
     : mp_progress(p_progress), m_interval(interval), m_count(0)
diff --git a/Core/Computation/DepthProbeComputation.cpp b/Core/Computation/DepthProbeComputation.cpp
index 7768334bf8fdd27071cf003490b55a04c857fcb5..1533039b2f1f7bc0fd2fccd5b2d5372b62aed590 100644
--- a/Core/Computation/DepthProbeComputation.cpp
+++ b/Core/Computation/DepthProbeComputation.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "DepthProbeComputation.h"
-#include "DepthProbeElement.h"
-#include "MultiLayer.h"
-#include "ProgressHandler.h"
+#include "Core/Computation/DepthProbeComputation.h"
+#include "Core/SimulationElement/DepthProbeElement.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ProgressHandler.h"
 
 static_assert(std::is_copy_constructible<DepthProbeComputation>::value == false,
               "DepthProbeComputation should not be copy constructible");
diff --git a/Core/Computation/DepthProbeComputation.h b/Core/Computation/DepthProbeComputation.h
index baa7d02358dfbdfd8d124fda1040d2bd20a7ba85..e7253a3cfd3612b00d6db35a52ffab895d7e3151 100644
--- a/Core/Computation/DepthProbeComputation.h
+++ b/Core/Computation/DepthProbeComputation.h
@@ -15,9 +15,9 @@
 #ifndef DEPTHPROBECOMPUTATION_H
 #define DEPTHPROBECOMPUTATION_H
 
-#include "DepthProbeComputationTerm.h"
-#include "IComputation.h"
-#include "SimulationOptions.h"
+#include "Core/Computation/DepthProbeComputationTerm.h"
+#include "Core/Computation/IComputation.h"
+#include "Core/Parametrization/SimulationOptions.h"
 
 class MultiLayer;
 
diff --git a/Core/Computation/DepthProbeComputationTerm.cpp b/Core/Computation/DepthProbeComputationTerm.cpp
index 8bdc40b1f606aeeb7c8dd952a231996bb986987c..23456e1c4ab0ccdf6f92b1c49239fbf5ad91ef15 100644
--- a/Core/Computation/DepthProbeComputationTerm.cpp
+++ b/Core/Computation/DepthProbeComputationTerm.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "DepthProbeComputationTerm.h"
-#include "DelayedProgressCounter.h"
-#include "DepthProbeElement.h"
-#include "IAxis.h"
-#include "IFresnelMap.h"
-#include "ILayerRTCoefficients.h"
-#include "ProcessedSample.h"
+#include "Core/Computation/DepthProbeComputationTerm.h"
+#include "Core/Computation/DelayedProgressCounter.h"
+#include "Core/SimulationElement/DepthProbeElement.h"
+#include "Core/Binning/IAxis.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Computation/ProcessedSample.h"
 
 DepthProbeComputationTerm::DepthProbeComputationTerm(const ProcessedSample* p_sample)
     : mp_sample{p_sample}
diff --git a/Core/Computation/GISASSpecularComputation.cpp b/Core/Computation/GISASSpecularComputation.cpp
index 72078a8d1c18ced5d1bb1a65b4a3a07aef479b68..e1b5050fb2cb17eaafd5b458e386e619c2c64b9b 100644
--- a/Core/Computation/GISASSpecularComputation.cpp
+++ b/Core/Computation/GISASSpecularComputation.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "GISASSpecularComputation.h"
-#include "IFresnelMap.h"
-#include "ILayerRTCoefficients.h"
-#include "SimulationElement.h"
+#include "Core/Computation/GISASSpecularComputation.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 GISASSpecularComputation::GISASSpecularComputation(const IFresnelMap* p_fresnel_map)
     : mp_fresnel_map{p_fresnel_map}
diff --git a/Core/Computation/IBackground.cpp b/Core/Computation/IBackground.cpp
index c11a562c678cce1c7b16db131f1184138126f5f3..0c36b8e6288d4e0e89242759de82aff0b34f55b7 100644
--- a/Core/Computation/IBackground.cpp
+++ b/Core/Computation/IBackground.cpp
@@ -12,6 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "IBackground.h"
+#include "Core/Computation/IBackground.h"
 
 IBackground::~IBackground() = default;
diff --git a/Core/Computation/IBackground.h b/Core/Computation/IBackground.h
index e3dfffc1ed5526f9515671e7a58e212566ed8206..d864f70370a17e57f73543c382098703a58fe3af 100644
--- a/Core/Computation/IBackground.h
+++ b/Core/Computation/IBackground.h
@@ -15,8 +15,8 @@
 #ifndef IBACKGROUND_H
 #define IBACKGROUND_H
 
-#include "ICloneable.h"
-#include "INode.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
 
 //! Interface for a simulating the background signal
 //!
diff --git a/Core/Computation/IComputation.cpp b/Core/Computation/IComputation.cpp
index e132c442990e490ccdbebde64029fb12607b65aa..a1ce60cd4a895144a4715877a76a97213d919739 100644
--- a/Core/Computation/IComputation.cpp
+++ b/Core/Computation/IComputation.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "IComputation.h"
-#include "MultiLayer.h"
-#include "ProcessedSample.h"
-#include "ProgressHandler.h"
-#include "SimulationElement.h"
+#include "Core/Computation/IComputation.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Computation/ProgressHandler.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 IComputation::IComputation(const MultiLayer& sample, const SimulationOptions& options,
                            ProgressHandler& progress)
diff --git a/Core/Computation/IComputation.h b/Core/Computation/IComputation.h
index 036f1577a0a9f8b50bc564a4485dada68be3f517..b6058b5ed4cd7a4aa9cb245efcedd134b6d82fba 100644
--- a/Core/Computation/IComputation.h
+++ b/Core/Computation/IComputation.h
@@ -15,8 +15,8 @@
 #ifndef ICOMPUTATION_H
 #define ICOMPUTATION_H
 
-#include "ComputationStatus.h"
-#include "SimulationOptions.h"
+#include "Core/Computation/ComputationStatus.h"
+#include "Core/Parametrization/SimulationOptions.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Computation/MultiLayerUtils.cpp b/Core/Computation/MultiLayerUtils.cpp
index dc14d05302a960bc518f76569c15ba2100f6b8ab..2610213a4100802f105eaca75a410f4faf742920 100644
--- a/Core/Computation/MultiLayerUtils.cpp
+++ b/Core/Computation/MultiLayerUtils.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayerUtils.h"
-#include "ILayout.h"
-#include "Layer.h"
-#include "LayerFillLimits.h"
-#include "LayerInterface.h"
-#include "MaterialUtils.h"
-#include "MultiLayer.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Aggregate/ILayout.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerFillLimits.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Multilayer/MultiLayer.h"
 
 namespace
 {
diff --git a/Core/Computation/MultiLayerUtils.h b/Core/Computation/MultiLayerUtils.h
index ba8c5f332d20f268be912cd86a3f189bf899f943..1be12fd79f1b5f18fd37707944d6157dcd1f6b26 100644
--- a/Core/Computation/MultiLayerUtils.h
+++ b/Core/Computation/MultiLayerUtils.h
@@ -15,7 +15,7 @@
 #ifndef MULTILAYERUTILS_H
 #define MULTILAYERUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <cstddef>
 #include <vector>
 
diff --git a/Core/Computation/ParticleLayoutComputation.cpp b/Core/Computation/ParticleLayoutComputation.cpp
index 8fb12bdc7c0b4c396acb1ac83802b48ba435c372..80deef7d70192636f969db20d8a6fedc7acb5a5d 100644
--- a/Core/Computation/ParticleLayoutComputation.cpp
+++ b/Core/Computation/ParticleLayoutComputation.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParticleLayoutComputation.h"
-#include "IInterferenceFunctionStrategy.h"
-#include "LayoutStrategyBuilder.h"
-#include "ProcessedLayout.h"
-#include "SimulationElement.h"
+#include "Core/Computation/ParticleLayoutComputation.h"
+#include "Core/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Core/Multilayer/LayoutStrategyBuilder.h"
+#include "Core/Computation/ProcessedLayout.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 ParticleLayoutComputation::ParticleLayoutComputation(const ProcessedLayout* p_layout,
                                                      const SimulationOptions& options,
diff --git a/Core/Computation/ParticleLayoutComputation.h b/Core/Computation/ParticleLayoutComputation.h
index 0dbc592a804544290cf908bfb40f7c996db390d4..5ca53c97fcba43a6e8b365002d9eee5e55c5466f 100644
--- a/Core/Computation/ParticleLayoutComputation.h
+++ b/Core/Computation/ParticleLayoutComputation.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLELAYOUTCOMPUTATION_H
 #define PARTICLELAYOUTCOMPUTATION_H
 
-#include "HomogeneousRegion.h"
+#include "Core/Particle/HomogeneousRegion.h"
 #include <map>
 #include <memory>
 #include <vector>
diff --git a/Core/Computation/PoissonNoiseBackground.cpp b/Core/Computation/PoissonNoiseBackground.cpp
index 826e89ed60009fe8fd3b28399e0400b1ce1894cb..0482e204cb72e47f38556dc36cb3a445de6221ca 100644
--- a/Core/Computation/PoissonNoiseBackground.cpp
+++ b/Core/Computation/PoissonNoiseBackground.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PoissonNoiseBackground.h"
-#include "MathFunctions.h"
+#include "Core/Computation/PoissonNoiseBackground.h"
+#include "Core/Tools/MathFunctions.h"
 
 PoissonNoiseBackground::PoissonNoiseBackground()
 {
diff --git a/Core/Computation/PoissonNoiseBackground.h b/Core/Computation/PoissonNoiseBackground.h
index 2910923b70b51cd9960f89f1efef5c2ccc50c1a6..bf0abf4cc61cea78c1d6ad59c315f171fac07e72 100644
--- a/Core/Computation/PoissonNoiseBackground.h
+++ b/Core/Computation/PoissonNoiseBackground.h
@@ -15,7 +15,7 @@
 #ifndef POISSONNOISEBACKGROUND_H
 #define POISSONNOISEBACKGROUND_H
 
-#include "IBackground.h"
+#include "Core/Computation/IBackground.h"
 
 //! Class representing Poisson noise on top of the scattered intensity
 //!
diff --git a/Core/Computation/ProcessedLayout.cpp b/Core/Computation/ProcessedLayout.cpp
index 273651d929c33df186b0745e406a84e7a8e52cff..8203d18955a06856fa38aa4c6b2cf3a6c2b59709 100644
--- a/Core/Computation/ProcessedLayout.cpp
+++ b/Core/Computation/ProcessedLayout.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "ProcessedLayout.h"
-#include "FormFactorBAPol.h"
-#include "FormFactorCoherentSum.h"
-#include "FormFactorDWBA.h"
-#include "FormFactorDWBAPol.h"
-#include "IInterferenceFunction.h"
-#include "ILayout.h"
-#include "IParticle.h"
-#include "Slice.h"
-#include "SlicedFormFactorList.h"
+#include "Core/Computation/ProcessedLayout.h"
+#include "Core/Multilayer/FormFactorBAPol.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Multilayer/FormFactorDWBA.h"
+#include "Core/Multilayer/FormFactorDWBAPol.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Aggregate/ILayout.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Particle/SlicedFormFactorList.h"
 
 namespace
 {
diff --git a/Core/Computation/ProcessedSample.cpp b/Core/Computation/ProcessedSample.cpp
index e1b9931df3afda2f632ab708b475b040ff13195e..c3df40bbe054d058ab6d5f32b6d681879b9b045b 100644
--- a/Core/Computation/ProcessedSample.cpp
+++ b/Core/Computation/ProcessedSample.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "ProcessedSample.h"
-#include "HomogeneousRegion.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MatrixFresnelMap.h"
-#include "MultiLayer.h"
-#include "MultiLayerUtils.h"
-#include "ProcessedLayout.h"
-#include "ScalarFresnelMap.h"
-#include "SimulationOptions.h"
-#include "Slice.h"
-#include "SpecularStrategyBuilder.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Particle/HomogeneousRegion.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MatrixFresnelMap.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Computation/ProcessedLayout.h"
+#include "Core/Multilayer/ScalarFresnelMap.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Multilayer/SpecularStrategyBuilder.h"
 
 namespace
 {
diff --git a/Core/Computation/ProcessedSample.h b/Core/Computation/ProcessedSample.h
index 152f0169ef018eabfc5ba21c3a76f6b70b69d81e..c92d90896c923d939c2316a0196502ace502c4e2 100644
--- a/Core/Computation/ProcessedSample.h
+++ b/Core/Computation/ProcessedSample.h
@@ -15,9 +15,9 @@
 #ifndef PROCESSEDSAMPLE_H
 #define PROCESSEDSAMPLE_H
 
-#include "Material.h"
-#include "Slice.h"
-#include "Vectors3D.h"
+#include "Core/Material/Material.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Vector/Vectors3D.h"
 #include <map>
 #include <memory>
 #include <vector>
diff --git a/Core/Computation/ProfileHelper.cpp b/Core/Computation/ProfileHelper.cpp
index 748a5f2ec8cf71e3e02bb9a5a909603365b7270c..a9659132db4beb3a1ec9156b0ed93997a2d2ba32 100644
--- a/Core/Computation/ProfileHelper.cpp
+++ b/Core/Computation/ProfileHelper.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ProfileHelper.h"
-#include "LayerRoughness.h"
-#include "ProcessedSample.h"
+#include "Core/Computation/ProfileHelper.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Computation/ProcessedSample.h"
 
 namespace
 {
diff --git a/Core/Computation/ProfileHelper.h b/Core/Computation/ProfileHelper.h
index 849f02b33171104fa3d17fa6dcee7e2b8ffb94b2..9652c4274bde7549dd8e191d55e3eea37ce3d694 100644
--- a/Core/Computation/ProfileHelper.h
+++ b/Core/Computation/ProfileHelper.h
@@ -15,9 +15,9 @@
 #ifndef PROFILEHELPER_H
 #define PROFILEHELPER_H
 
-#include "Complex.h"
-#include "Material.h"
-#include "WinDllMacros.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Material/Material.h"
+#include "Wrap/WinDllMacros.h"
 #include <utility>
 #include <vector>
 
diff --git a/Core/Computation/ProgressHandler.cpp b/Core/Computation/ProgressHandler.cpp
index d7a972a3852780b1e451e2d0e05ad711030d198d..56b42337b74feea19f3df2e834b2fa8a5737f793 100644
--- a/Core/Computation/ProgressHandler.cpp
+++ b/Core/Computation/ProgressHandler.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ProgressHandler.h"
+#include "Core/Computation/ProgressHandler.h"
 #include <mutex>
 #include <stdexcept>
 
diff --git a/Core/Computation/ProgressHandler.h b/Core/Computation/ProgressHandler.h
index 91f1554dde043da64b7d4543a99a70a1dccf640e..0747fc6010ee0ac6487314cec03d8a3b5b3e696c 100644
--- a/Core/Computation/ProgressHandler.h
+++ b/Core/Computation/ProgressHandler.h
@@ -15,7 +15,7 @@
 #ifndef PROGRESSHANDLER_H
 #define PROGRESSHANDLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 
 class MultiLayer;
diff --git a/Core/Computation/RoughMultiLayerComputation.cpp b/Core/Computation/RoughMultiLayerComputation.cpp
index 02eadd2b3febd2efe541a1603d9e2db9c13dfd81..073a063aec108692894b8d80f6e7ab44ac53fd58 100644
--- a/Core/Computation/RoughMultiLayerComputation.cpp
+++ b/Core/Computation/RoughMultiLayerComputation.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "RoughMultiLayerComputation.h"
+#include "Core/Computation/RoughMultiLayerComputation.h"
 #include "Faddeeva.hh"
-#include "IFresnelMap.h"
-#include "ILayerRTCoefficients.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "ProcessedSample.h"
-#include "SimulationElement.h"
-#include "Slice.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Computation/Slice.h"
 
 // Diffuse scattering from rough interfaces is modelled after
 // Phys. Rev. B, vol. 51 (4), p. 2311 (1995)
diff --git a/Core/Computation/RoughMultiLayerComputation.h b/Core/Computation/RoughMultiLayerComputation.h
index 3cc498dd82f1c847f3f0969202a2ad6a4be14864..ec78398145a0180e3844ffe9ce78c1d535fe4161 100644
--- a/Core/Computation/RoughMultiLayerComputation.h
+++ b/Core/Computation/RoughMultiLayerComputation.h
@@ -15,7 +15,7 @@
 #ifndef ROUGHMULTILAYERCOMPUTATION_H
 #define ROUGHMULTILAYERCOMPUTATION_H
 
-#include "Complex.h"
+#include "Core/Basics/Complex.h"
 
 class ProcessedSample;
 class SimulationElement;
diff --git a/Core/Computation/Slice.cpp b/Core/Computation/Slice.cpp
index f22d7e9bc0cef02051537a338857e12dd805a1e2..305586f15aa4aea26a63c0a3016889e6b943de9b 100644
--- a/Core/Computation/Slice.cpp
+++ b/Core/Computation/Slice.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Slice.h"
-#include "LayerRoughness.h"
-#include "MaterialUtils.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialUtils.h"
 
 Slice::Slice(double thickness, const Material& material)
     : m_thickness{thickness}, m_material{material}, m_B_field{}, mP_top_roughness{nullptr}
diff --git a/Core/Computation/Slice.h b/Core/Computation/Slice.h
index 4e60929836e47271f7b8330e69cd697f131026f1..dc39562d13f10850403362bb17ef39bcde2aa89d 100644
--- a/Core/Computation/Slice.h
+++ b/Core/Computation/Slice.h
@@ -15,7 +15,7 @@
 #ifndef SLICE_H
 #define SLICE_H
 
-#include "Material.h"
+#include "Core/Material/Material.h"
 #include <memory>
 
 class LayerRoughness;
diff --git a/Core/Computation/SpecularComputation.cpp b/Core/Computation/SpecularComputation.cpp
index 125fedf1782d5fb07ccdf21d20332a1883f6616d..eaf76ddc96ccf66c4fac0a12a17df145d339b960 100644
--- a/Core/Computation/SpecularComputation.cpp
+++ b/Core/Computation/SpecularComputation.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "SpecularComputation.h"
-#include "MultiLayer.h"
-#include "ProcessedSample.h"
-#include "ProgressHandler.h"
-#include "SpecularSimulationElement.h"
-#include "SpecularStrategyBuilder.h"
+#include "Core/Computation/SpecularComputation.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Computation/ProgressHandler.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
+#include "Core/Multilayer/SpecularStrategyBuilder.h"
 
 static_assert(std::is_copy_constructible<SpecularComputation>::value == false,
               "SpecularComputation should not be copy constructible");
diff --git a/Core/Computation/SpecularComputation.h b/Core/Computation/SpecularComputation.h
index f16b226c769d9d965517d1e7a26e41f60f819f70..4f0e1043e3bc552655bdba69ff6f36b981ac4f1f 100644
--- a/Core/Computation/SpecularComputation.h
+++ b/Core/Computation/SpecularComputation.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARCOMPUTATION_H_
 #define SPECULARCOMPUTATION_H_
 
-#include "IComputation.h"
-#include "SimulationOptions.h"
-#include "SpecularComputationTerm.h"
+#include "Core/Computation/IComputation.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Computation/SpecularComputationTerm.h"
 
 class MultiLayer;
 class SpecularSimulationElement;
diff --git a/Core/Computation/SpecularComputationTerm.cpp b/Core/Computation/SpecularComputationTerm.cpp
index 0e27a068e77e802a15717557c5b0df82609c99dd..3929029dbf3e5061b21be76f863f084bbfe732bb 100644
--- a/Core/Computation/SpecularComputationTerm.cpp
+++ b/Core/Computation/SpecularComputationTerm.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SpecularComputationTerm.h"
-#include "DelayedProgressCounter.h"
-#include "ScalarRTCoefficients.h"
-#include "SpecularScalarStrategy.h"
-#include "SpecularSimulationElement.h"
+#include "Core/Computation/SpecularComputationTerm.h"
+#include "Core/Computation/DelayedProgressCounter.h"
+#include "Core/Multilayer/ScalarRTCoefficients.h"
+#include "Core/Multilayer/SpecularScalarStrategy.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
 
 SpecularComputationTerm::SpecularComputationTerm(std::unique_ptr<ISpecularStrategy> strategy)
     : m_Strategy(std::move(strategy)){};
diff --git a/Core/Computation/SpecularComputationTerm.h b/Core/Computation/SpecularComputationTerm.h
index d1a8864d4d494e4d2165fc25f376cf06b93256be..7a92cfe450fd401a75e8c1aa48deefdb6349fec2 100644
--- a/Core/Computation/SpecularComputationTerm.h
+++ b/Core/Computation/SpecularComputationTerm.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARCOMPUTATIONTERM_H_
 #define SPECULARCOMPUTATIONTERM_H_
 
-#include "ISpecularStrategy.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
 
 #include <memory>
 #include <vector>
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp
index effb1e23e67a6de2ba9a1c44eff9866afacaacca..a90a7ef874d46f8fecad5d58bb7c1fed91aba8bd 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDecoratorMaterial.h"
-#include "BornAgainNamespace.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "WavevectorInfo.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 FormFactorDecoratorMaterial::FormFactorDecoratorMaterial(const IFormFactor& form_factor)
     : IFormFactorDecorator(form_factor), m_material(HomogeneousMaterial()),
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h b/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h
index b63484f5ad46839e2448c0839649013dd00b7ea1..0963b9e56b0ba805bb6a16a429e14ec5b218849b 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORDECORATORMATERIAL_H
 #define FORMFACTORDECORATORMATERIAL_H
 
-#include "IFormFactorDecorator.h"
-#include "Material.h"
+#include "Core/DecoratedFormFactor/IFormFactorDecorator.h"
+#include "Core/Material/Material.h"
 #include <memory>
 
 //! Decorates a scalar formfactor with the correct factor for the material's
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp
index 69b4e5f39fdf6c5d1c39bc069a738e8390a8b0a3..5481b6560137c993d6d12f863445d168b48071b4 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDecoratorPositionFactor.h"
-#include "BornAgainNamespace.h"
-#include "Rotations.h"
-#include "WavevectorInfo.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 FormFactorDecoratorPositionFactor::FormFactorDecoratorPositionFactor(const IFormFactor& form_factor,
                                                                      const kvector_t& position)
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h b/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h
index 38256e7b0ae8148454e446ed090b78feb912b87c..c1fb3d00f9387ca272c924d35d62fd03c9686703 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORDECORATORPOSITIONFACTOR_H
 #define FORMFACTORDECORATORPOSITIONFACTOR_H
 
-#include "IFormFactorDecorator.h"
-#include "Vectors3D.h"
+#include "Core/DecoratedFormFactor/IFormFactorDecorator.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! Decorates a form factor with a position dependent phase factor.
 //! @ingroup formfactors_internal
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp
index 47492c1018d1d4d8a34d77bc1e6f5001b2ac8297..e23b057bc21ac34ad799532730dc08c65d9ba9f0 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorRotation.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDecoratorRotation.h"
-#include "BornAgainNamespace.h"
-#include "WavevectorInfo.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Vector/WavevectorInfo.h"
 #include <memory>
 
 FormFactorDecoratorRotation::FormFactorDecoratorRotation(const IFormFactor& form_factor,
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorRotation.h b/Core/DecoratedFormFactor/FormFactorDecoratorRotation.h
index 9ff3fd66108ab10a1cfe70a6059548bb7e79c67f..5e03585ad73a089a91d12f4c9a1cf3a0140b252f 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorRotation.h
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorRotation.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORDECORATORROTATION_H
 #define FORMFACTORDECORATORROTATION_H
 
-#include "IFormFactorDecorator.h"
-#include "Rotations.h"
+#include "Core/DecoratedFormFactor/IFormFactorDecorator.h"
+#include "Core/Scattering/Rotations.h"
 
 //! Equips a form factor with a rotation.
 //! @ingroup formfactors_internal
diff --git a/Core/DecoratedFormFactor/IFormFactorDecorator.h b/Core/DecoratedFormFactor/IFormFactorDecorator.h
index 97a7261a3a87cc7c8e024fcb27f3b62aeb0d782e..d8513060a6992839d0d07703c1a55688862d9290 100644
--- a/Core/DecoratedFormFactor/IFormFactorDecorator.h
+++ b/Core/DecoratedFormFactor/IFormFactorDecorator.h
@@ -15,7 +15,7 @@
 #ifndef IFORMFACTORDECORATOR_H
 #define IFORMFACTORDECORATOR_H
 
-#include "IFormFactor.h"
+#include "Core/Scattering/IFormFactor.h"
 
 //! Encapsulates another formfactor and adds extra functionality
 //! (a scalar factor, a position-dependent phase factor, ...).
diff --git a/Core/Export/ExportToPython.cpp b/Core/Export/ExportToPython.cpp
index ae3eace4c57efb15d3a1b574addd585b669108d2..c9feddf2a11c72eecb5f55cd75fabf794dc66cea 100644
--- a/Core/Export/ExportToPython.cpp
+++ b/Core/Export/ExportToPython.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ExportToPython.h"
-#include "GISASSimulation.h"
-#include "SampleToPython.h"
-#include "SimulationToPython.h"
+#include "Core/Export/ExportToPython.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Export/SampleToPython.h"
+#include "Core/Export/SimulationToPython.h"
 
 namespace
 {
diff --git a/Core/Export/ExportToPython.h b/Core/Export/ExportToPython.h
index 0d3f13ac17def1dec78edadeb73e5a80592f517d..42b7d5a71da0fe636e4276037e39475a7e1211ab 100644
--- a/Core/Export/ExportToPython.h
+++ b/Core/Export/ExportToPython.h
@@ -15,7 +15,7 @@
 #ifndef EXPORTTOPYTHON_H
 #define EXPORTTOPYTHON_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 class MultiLayer;
diff --git a/Core/Export/INodeUtils.h b/Core/Export/INodeUtils.h
index 5521eb768f89f1b9ad918e84fe2479b28aff7e0b..f8543c015bc8a0fa7c6dad7ecc641ca5488cef9e 100644
--- a/Core/Export/INodeUtils.h
+++ b/Core/Export/INodeUtils.h
@@ -15,7 +15,7 @@
 #ifndef INODEUTILS_H
 #define INODEUTILS_H
 
-#include "INode.h"
+#include "Core/Parametrization/INode.h"
 
 namespace INodeUtils
 {
diff --git a/Core/Export/PythonFormatting.cpp b/Core/Export/PythonFormatting.cpp
index acb3a1f3482a6fee093a768a6c3a0bafbe2337b2..bf5e405e0d5530a74db7c02db4ffad22deae8b00 100644
--- a/Core/Export/PythonFormatting.cpp
+++ b/Core/Export/PythonFormatting.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "PythonFormatting.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "Ellipse.h"
-#include "FixedBinAxis.h"
-#include "IParameterized.h"
-#include "InfinitePlane.h"
-#include "Line.h"
-#include "MathConstants.h"
-#include "Numeric.h"
-#include "ParameterDistribution.h"
-#include "ParameterPool.h"
-#include "PointwiseAxis.h"
-#include "Polygon.h"
-#include "RealParameter.h"
-#include "Rectangle.h"
-#include "StringUtils.h"
-#include "Units.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Mask/Ellipse.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Core/Mask/InfinitePlane.h"
+#include "Core/Mask/Line.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/Numeric.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Mask/Rectangle.h"
+#include "Fit/Tools/StringUtils.h"
+#include "Core/Parametrization/Units.h"
 #include <iomanip>
 
 namespace PythonFormatting
diff --git a/Core/Export/PythonFormatting.h b/Core/Export/PythonFormatting.h
index 9d918250d62f2a77573704909ccc59f5eb1344a4..6b966d9a038b43e6409c0094623129d7d2e2048d 100644
--- a/Core/Export/PythonFormatting.h
+++ b/Core/Export/PythonFormatting.h
@@ -15,7 +15,7 @@
 #ifndef PYTHONFORMATTING_H
 #define PYTHONFORMATTING_H
 
-#include "Vectors3D.h"
+#include "Core/Vector/Vectors3D.h"
 #include <functional>
 #include <string>
 
diff --git a/Core/Export/SampleLabelHandler.cpp b/Core/Export/SampleLabelHandler.cpp
index 9a06ce3dcdcaec58e4242c2c82af891072a0e3f5..58f9f223e0a1a519b5b39a8496a284fe3cb7abde 100644
--- a/Core/Export/SampleLabelHandler.cpp
+++ b/Core/Export/SampleLabelHandler.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "SampleLabelHandler.h"
-#include "IInterferenceFunction.h"
-#include "LayerRoughness.h"
-#include "Material.h"
-#include "MesoCrystal.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleCoreShell.h"
-#include "ParticleDistribution.h"
+#include "Core/Export/SampleLabelHandler.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/Material.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "Core/Particle/ParticleDistribution.h"
 #include <set>
 
 std::string SampleLabelHandler::labelCrystal(const Crystal* cr)
diff --git a/Core/Export/SampleLabelHandler.h b/Core/Export/SampleLabelHandler.h
index 76290c66fc5f80d54dbecf078ba1bad7abe70895..718ecf02373e15293a5d46b4ed589e84420b2924 100644
--- a/Core/Export/SampleLabelHandler.h
+++ b/Core/Export/SampleLabelHandler.h
@@ -15,8 +15,8 @@
 #ifndef SAMPLELABELHANDLER_H
 #define SAMPLELABELHANDLER_H
 
-#include "Exceptions.h"
-#include "OrderedMap.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Tools/OrderedMap.h"
 
 class Crystal;
 class IAbstractParticle;
diff --git a/Core/Export/SampleToPython.cpp b/Core/Export/SampleToPython.cpp
index 6f69f0bad2f0e357935afa61ade1e75c60781c8b..5bbc95fd2759599cbc25dc31c01c5b31e0b74407 100644
--- a/Core/Export/SampleToPython.cpp
+++ b/Core/Export/SampleToPython.cpp
@@ -12,26 +12,26 @@
 //
 // ************************************************************************** //
 
-#include "SampleToPython.h"
-#include "Crystal.h"
-#include "IFormFactor.h"
-#include "INodeUtils.h"
-#include "InterferenceFunctions.h"
-#include "Lattice.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "Material.h"
-#include "MesoCrystal.h"
-#include "MultiLayer.h"
-#include "ParameterUtils.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleCoreShell.h"
-#include "ParticleDistribution.h"
-#include "ParticleLayout.h"
-#include "PythonFormatting.h"
-#include "SampleLabelHandler.h"
+#include "Core/Export/SampleToPython.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/Scattering/IFormFactor.h"
+#include "Core/Export/INodeUtils.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/Material.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Export/SampleLabelHandler.h"
 #include <iomanip>
 #include <map>
 #include <set>
diff --git a/Core/Export/SampleToPython.h b/Core/Export/SampleToPython.h
index 973e3013679640dfaf8028d3e321a2e4ea49fa4b..6a2d1778aa9f34a848ae4a5ed7b7c3ff52952aaa 100644
--- a/Core/Export/SampleToPython.h
+++ b/Core/Export/SampleToPython.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLETOPYTHON_H
 #define SAMPLETOPYTHON_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <string>
 
diff --git a/Core/Export/SimulationToPython.cpp b/Core/Export/SimulationToPython.cpp
index 156399f69c5a88f70bcea59af68593fd6f040139..7b63a987bdee1f390e0aed76d2ce735e73ef9e34 100644
--- a/Core/Export/SimulationToPython.cpp
+++ b/Core/Export/SimulationToPython.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "SimulationToPython.h"
-#include "ConstantBackground.h"
-#include "ConvolutionDetectorResolution.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "GISASSimulation.h"
-#include "INodeUtils.h"
-#include "ISpecularScan.h"
-#include "OffSpecSimulation.h"
-#include "ParameterUtils.h"
-#include "PoissonNoiseBackground.h"
-#include "PythonFormatting.h"
-#include "RectangularDetector.h"
-#include "RegionOfInterest.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "SampleToPython.h"
-#include "SpecularSimulation.h"
-#include "SphericalDetector.h"
+#include "Core/Export/SimulationToPython.h"
+#include "Core/Computation/ConstantBackground.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Export/INodeUtils.h"
+#include "Core/Instrument/ISpecularScan.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "Core/Computation/PoissonNoiseBackground.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "Core/Export/SampleToPython.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Instrument/SphericalDetector.h"
 #include <iomanip>
 
 using namespace PythonFormatting;
diff --git a/Core/Export/SimulationToPython.h b/Core/Export/SimulationToPython.h
index c4f68e1a73d7d1896a56adc4d4db60a7ce8da00b..2c0c1c04ee0a8e70b3cd9a49a0240afa36a9960b 100644
--- a/Core/Export/SimulationToPython.h
+++ b/Core/Export/SimulationToPython.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONTOPYTHON_H
 #define SIMULATIONTOPYTHON_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <string>
 
diff --git a/Core/Fitting/FitObjective.cpp b/Core/Fitting/FitObjective.cpp
index cb3825edb63060555297b5669f98971f9c7b5557..14d705966f24f12597052dbebdc79bab7ed444c3 100644
--- a/Core/Fitting/FitObjective.cpp
+++ b/Core/Fitting/FitObjective.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "FitObjective.h"
-#include "ArrayUtils.h"
-#include "ChiSquaredModule.h"
-#include "FitStatus.h"
-#include "MinimizerResult.h"
-#include "ObjectiveMetric.h"
-#include "ObjectiveMetricUtils.h"
-#include "Parameters.h"
-#include "PyFittingCallbacks.h"
-#include "Simulation.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Instrument/ChiSquaredModule.h"
+#include "Core/Fitting/FitStatus.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Core/Fitting/ObjectiveMetric.h"
+#include "Core/Fitting/ObjectiveMetricUtils.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Core/Fitting/PyFittingCallbacks.h"
+#include "Core/Simulation/Simulation.h"
 #include <stdexcept>
 
 class IMetricWrapper
diff --git a/Core/Fitting/FitObjective.h b/Core/Fitting/FitObjective.h
index e2cb40a5fdd7170ea7b6db998c5a1feb0e801607..f71c5b0f18eb9b7922b997397608fcb999ed66b1 100644
--- a/Core/Fitting/FitObjective.h
+++ b/Core/Fitting/FitObjective.h
@@ -15,12 +15,12 @@
 #ifndef FITOBJECTIVE_H
 #define FITOBJECTIVE_H
 
-#include "ArrayUtils.h"
-#include "FitTypes.h"
-#include "IterationInfo.h"
-#include "MinimizerResult.h"
-#include "OutputData.h"
-#include "SimDataPair.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Fitting/FitTypes.h"
+#include "Core/Fitting/IterationInfo.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Fitting/SimDataPair.h"
 
 class FitStatus;
 class IChiSquaredModule;
diff --git a/Core/Fitting/FitObserver.h b/Core/Fitting/FitObserver.h
index 9a385ea90783db6abd7e7529fd515fc22058c227..0562dc2ca7e0cb6ed7f36bb88474cbd00b7ad1b7 100644
--- a/Core/Fitting/FitObserver.h
+++ b/Core/Fitting/FitObserver.h
@@ -15,7 +15,7 @@
 #ifndef FITOBSERVER_H
 #define FITOBSERVER_H
 
-#include "FitTypes.h"
+#include "Core/Fitting/FitTypes.h"
 #include <functional>
 #include <vector>
 
diff --git a/Core/Fitting/FitPrintService.cpp b/Core/Fitting/FitPrintService.cpp
index 68b72a7697679018e8156f399f1da9d437f699e9..7618ff27aabdc3bc24633e9dba7d9aa5c5a49d1a 100644
--- a/Core/Fitting/FitPrintService.cpp
+++ b/Core/Fitting/FitPrintService.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FitPrintService.h"
-#include "FitObjective.h"
-#include "MinimizerResult.h"
-#include "StringUtils.h"
+#include "Core/Fitting/FitPrintService.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Fit/Tools/StringUtils.h"
 #include <iomanip>
 #include <iostream>
 #include <sstream>
diff --git a/Core/Fitting/FitPrintService.h b/Core/Fitting/FitPrintService.h
index 00230a48ccd9e2baaf6631428350f0b35bca0297..c618c8f6c8a4f8b5bab2e3e0a2193e634cbe1245 100644
--- a/Core/Fitting/FitPrintService.h
+++ b/Core/Fitting/FitPrintService.h
@@ -15,8 +15,8 @@
 #ifndef FITPRINTSERVICE_H
 #define FITPRINTSERVICE_H
 
-#include "WallclockTimer.h"
-#include "WinDllMacros.h"
+#include "Fit/Tools/WallclockTimer.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 class FitObjective;
diff --git a/Core/Fitting/FitStatus.cpp b/Core/Fitting/FitStatus.cpp
index 845ef6a8bf421d3611e4f80e870d4ed327cfeb40..b684d6d2cc89ebfddd9a04cf51bfed4699c74273 100644
--- a/Core/Fitting/FitStatus.cpp
+++ b/Core/Fitting/FitStatus.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FitStatus.h"
-#include "FitPrintService.h"
-#include "MinimizerResult.h"
+#include "Core/Fitting/FitStatus.h"
+#include "Core/Fitting/FitPrintService.h"
+#include "Fit/Kernel/MinimizerResult.h"
 #include <stdexcept>
 
 FitStatus::FitStatus(const FitObjective* fit_objective)
diff --git a/Core/Fitting/FitStatus.h b/Core/Fitting/FitStatus.h
index 2ddb33fa76015090026e1615120135ddd0118a78..8b0a2d593a23d687bfff37d360eb3dcafa445ff8 100644
--- a/Core/Fitting/FitStatus.h
+++ b/Core/Fitting/FitStatus.h
@@ -15,10 +15,10 @@
 #ifndef FITSTATUS_H
 #define FITSTATUS_H
 
-#include "FitObserver.h"
-#include "FitTypes.h"
-#include "IterationInfo.h"
-#include "WinDllMacros.h"
+#include "Core/Fitting/FitObserver.h"
+#include "Core/Fitting/FitTypes.h"
+#include "Core/Fitting/IterationInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <vector>
 
diff --git a/Core/Fitting/FitTypes.h b/Core/Fitting/FitTypes.h
index 89de252231dcf07d28b629b66927c208a97f0ac5..343b6f9ee602eecf3d3af2c00d13eb75fab7ca64 100644
--- a/Core/Fitting/FitTypes.h
+++ b/Core/Fitting/FitTypes.h
@@ -15,7 +15,7 @@
 #ifndef FITTYPES_H
 #define FITTYPES_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <memory>
 
diff --git a/Core/Fitting/IObserver.cpp b/Core/Fitting/IObserver.cpp
index d8d907d32116edc2eaf27c16bbaa32c963d1f61d..5f06e50fafa30690528eff29077f7cbd9d8ef99b 100644
--- a/Core/Fitting/IObserver.cpp
+++ b/Core/Fitting/IObserver.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IObserver.h"
+#include "Core/Fitting/IObserver.h"
 
 void IObservable::attachObserver(observer_t obj)
 {
diff --git a/Core/Fitting/IObserver.h b/Core/Fitting/IObserver.h
index 301663fc0480c3b02d99325789eed4700c1f9cd6..87ec1196d7d35e305a791b9e353a98f5c34ba0a7 100644
--- a/Core/Fitting/IObserver.h
+++ b/Core/Fitting/IObserver.h
@@ -15,7 +15,7 @@
 #ifndef IOBSERVER_H
 #define IOBSERVER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <list>
 #include <memory>
 
diff --git a/Core/Fitting/IterationInfo.cpp b/Core/Fitting/IterationInfo.cpp
index c2e8e6fd43eb68702c31f4d2b37c373c42c8aa7e..4e2f6995955b40dbb53e90cdc7a1b270af0688f6 100644
--- a/Core/Fitting/IterationInfo.cpp
+++ b/Core/Fitting/IterationInfo.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IterationInfo.h"
+#include "Core/Fitting/IterationInfo.h"
 
 IterationInfo::IterationInfo() : m_chi2(0.0), m_iteration_count(0) {}
 
diff --git a/Core/Fitting/IterationInfo.h b/Core/Fitting/IterationInfo.h
index 7705b509eac2c7e6eb2260866cf5ab636b80e48a..250e4b1822be8e6780af6d4b64c438948ad2dff3 100644
--- a/Core/Fitting/IterationInfo.h
+++ b/Core/Fitting/IterationInfo.h
@@ -15,8 +15,8 @@
 #ifndef ITERATIONINFO_H
 #define ITERATIONINFO_H
 
-#include "Parameters.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Wrap/WinDllMacros.h"
 #include <map>
 #include <string>
 
diff --git a/Core/Fitting/ObjectiveMetric.cpp b/Core/Fitting/ObjectiveMetric.cpp
index 816907a3fae0013dfeb876c22fc9a1b01ed35291..b610df940f4007669875903fa7bd397100808c49 100644
--- a/Core/Fitting/ObjectiveMetric.cpp
+++ b/Core/Fitting/ObjectiveMetric.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ObjectiveMetric.h"
-#include "ObjectiveMetricUtils.h"
-#include "OutputData.h"
-#include "SimDataPair.h"
+#include "Core/Fitting/ObjectiveMetric.h"
+#include "Core/Fitting/ObjectiveMetricUtils.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Fitting/SimDataPair.h"
 #include <cmath>
 #include <limits>
 
diff --git a/Core/Fitting/ObjectiveMetric.h b/Core/Fitting/ObjectiveMetric.h
index 59991282095ea2818f7365bcd8a0842f8394dc54..e9d7e41c4a7db6e71d53b49831b9de0e1cc4cb48 100644
--- a/Core/Fitting/ObjectiveMetric.h
+++ b/Core/Fitting/ObjectiveMetric.h
@@ -15,7 +15,7 @@
 #ifndef OBJECTIVEMETRIC_H
 #define OBJECTIVEMETRIC_H
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 #include <functional>
 #include <memory>
 #include <vector>
diff --git a/Core/Fitting/ObjectiveMetricUtils.cpp b/Core/Fitting/ObjectiveMetricUtils.cpp
index a7feb7859fb252b7929f81ca14255b7c074e4110..af1faf1d4fc6a973df43e47ed3807f3354d26fb9 100644
--- a/Core/Fitting/ObjectiveMetricUtils.cpp
+++ b/Core/Fitting/ObjectiveMetricUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ObjectiveMetricUtils.h"
-#include "ObjectiveMetric.h"
+#include "Core/Fitting/ObjectiveMetricUtils.h"
+#include "Core/Fitting/ObjectiveMetric.h"
 #include <algorithm>
 #include <cmath>
 #include <map>
diff --git a/Core/Fitting/ObjectiveMetricUtils.h b/Core/Fitting/ObjectiveMetricUtils.h
index 8c57f65caec9c1a3f3ff05023934e825ae278707..76a45643aaa0d8a85e1426f79b7d9136a6eb1de7 100644
--- a/Core/Fitting/ObjectiveMetricUtils.h
+++ b/Core/Fitting/ObjectiveMetricUtils.h
@@ -15,7 +15,7 @@
 #ifndef OBJECTIVEMETRICUTILS_H
 #define OBJECTIVEMETRICUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <memory>
 #include <string>
diff --git a/Core/Fitting/PyFittingCallbacks.cpp b/Core/Fitting/PyFittingCallbacks.cpp
index 7b88e486d4fbce568f79ed02e854ca861837daf3..21c2b8f4613435f041635afacebb01b055686cce 100644
--- a/Core/Fitting/PyFittingCallbacks.cpp
+++ b/Core/Fitting/PyFittingCallbacks.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "PyFittingCallbacks.h"
+#include "Core/Fitting/PyFittingCallbacks.h"
 
 // --- PyBuilderCallback ---
 
diff --git a/Core/Fitting/PyFittingCallbacks.h b/Core/Fitting/PyFittingCallbacks.h
index ba3c7599e0ffac049830e193d606ac987af82788..bb7d0766667d42332a81846e811d861ee06b7b69 100644
--- a/Core/Fitting/PyFittingCallbacks.h
+++ b/Core/Fitting/PyFittingCallbacks.h
@@ -17,8 +17,8 @@
 
 //! Collection of wrapper classes to call Python callable from C++.
 
-#include "Parameters.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Wrap/WinDllMacros.h"
 
 class Simulation;
 
diff --git a/Core/Fitting/SimDataPair.cpp b/Core/Fitting/SimDataPair.cpp
index c7029b8ccefb38dcf4a5d2a09277fbf2e7cef60c..d51530bd9e8b2fd9383b9080a4b266b6ffc3f9c2 100644
--- a/Core/Fitting/SimDataPair.cpp
+++ b/Core/Fitting/SimDataPair.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "SimDataPair.h"
-#include "IntensityDataFunctions.h"
-#include "Numeric.h"
-#include "OutputData.h"
-#include "Simulation.h"
-#include "UnitConverterUtils.h"
+#include "Core/Fitting/SimDataPair.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Tools/Numeric.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Instrument/UnitConverterUtils.h"
 
 namespace
 {
diff --git a/Core/Fitting/SimDataPair.h b/Core/Fitting/SimDataPair.h
index 652bf8461b58c9c3eac739a83346067fa8822425..aa3bd86d47dc2e641fdefe19a5bb9a76f0c70d8d 100644
--- a/Core/Fitting/SimDataPair.h
+++ b/Core/Fitting/SimDataPair.h
@@ -15,8 +15,8 @@
 #ifndef SIMDATAPAIR_H
 #define SIMDATAPAIR_H
 
-#include "FitTypes.h"
-#include "SimulationResult.h"
+#include "Core/Fitting/FitTypes.h"
+#include "Core/Instrument/SimulationResult.h"
 
 template <class T> class OutputData;
 
diff --git a/Core/HardParticle/FormFactorAnisoPyramid.cpp b/Core/HardParticle/FormFactorAnisoPyramid.cpp
index 20618ede7de72be268a252000e230a515c8855b7..05c234e6f27239782245c689728d94caf6ab178e 100644
--- a/Core/HardParticle/FormFactorAnisoPyramid.cpp
+++ b/Core/HardParticle/FormFactorAnisoPyramid.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorAnisoPyramid.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorAnisoPyramid.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorAnisoPyramid::topology = {{{{3, 2, 1, 0}, true},
                                                               {{0, 1, 5, 4}, false},
diff --git a/Core/HardParticle/FormFactorAnisoPyramid.h b/Core/HardParticle/FormFactorAnisoPyramid.h
index 8f0a264e0443d826259366c21c4e5f2385e6c424..5eb1f343ce616bb8e1a8fbedd074559378eebe2e 100644
--- a/Core/HardParticle/FormFactorAnisoPyramid.h
+++ b/Core/HardParticle/FormFactorAnisoPyramid.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORANISOPYRAMID_H
 #define FORMFACTORANISOPYRAMID_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A frustum (truncated pyramid) with rectangular base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorBar.cpp b/Core/HardParticle/FormFactorBar.cpp
index 7df8a6c856a8abbaf0f946d4c7ef36ba56d6354c..b615a5dcfdd1358b2c2fe3ebeaa4ce2fc49eb4d4 100644
--- a/Core/HardParticle/FormFactorBar.cpp
+++ b/Core/HardParticle/FormFactorBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorBar.h"
-#include "Ripples.h"
+#include "Core/HardParticle/FormFactorBar.h"
+#include "Core/HardParticle/Ripples.h"
 
 // ************************************************************************** //
 // class FormFactorBarGauss
diff --git a/Core/HardParticle/FormFactorBar.h b/Core/HardParticle/FormFactorBar.h
index 316cb23d6471751919fd397d779f38db40ac4739..d17d3b077bbfa3a3ac6308148815aafcfcfb804e 100644
--- a/Core/HardParticle/FormFactorBar.h
+++ b/Core/HardParticle/FormFactorBar.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORBAR_H
 #define FORMFACTORBAR_H
 
-#include "ProfileBar.h"
+#include "Core/HardParticle/ProfileBar.h"
 
 //! The form factor of an elongated bar, with Gaussian profile in elongation direction.
 //! @ingroup legacyGrating
diff --git a/Core/HardParticle/FormFactorBox.cpp b/Core/HardParticle/FormFactorBox.cpp
index 519e7efc12ffa47b34b872ab11bb9efb32788d97..c0c575116564fbd92b8f3df3bfa365490dd6b464 100644
--- a/Core/HardParticle/FormFactorBox.cpp
+++ b/Core/HardParticle/FormFactorBox.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorBox.h"
-#include "BornAgainNamespace.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 //! Constructor of a rectangular cuboid.
 //! @param length: length of the base in nanometers
diff --git a/Core/HardParticle/FormFactorBox.h b/Core/HardParticle/FormFactorBox.h
index 285ff12875a7f943d2aca7bb0f36c1b3d169637c..e7c33f3dec6cfbf2fd45404a119c01737b548fa3 100644
--- a/Core/HardParticle/FormFactorBox.h
+++ b/Core/HardParticle/FormFactorBox.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORBOX_H
 #define FORMFACTORBOX_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A rectangular prism (parallelepiped).
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorCantellatedCube.cpp b/Core/HardParticle/FormFactorCantellatedCube.cpp
index ff7edfdd3bc71cb291e737d8c73e2555f681de85..621f17f8d20e631eb1cef4ccf29a9d6552b7e51c 100644
--- a/Core/HardParticle/FormFactorCantellatedCube.cpp
+++ b/Core/HardParticle/FormFactorCantellatedCube.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCantellatedCube.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorCantellatedCube.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorCantellatedCube::topology = {
     {
diff --git a/Core/HardParticle/FormFactorCantellatedCube.h b/Core/HardParticle/FormFactorCantellatedCube.h
index 3acca1e6de5ac04f3d0db7ca41cf51265bc6db47..873ed08823cdd3f250d1d23ab756d95a42ab5730 100644
--- a/Core/HardParticle/FormFactorCantellatedCube.h
+++ b/Core/HardParticle/FormFactorCantellatedCube.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTOREDGETRUNCATEDCUBE_H
 #define FORMFACTOREDGETRUNCATEDCUBE_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A cube, with truncation of all edges and corners, as in Croset (2017) Fig 7
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorCone.cpp b/Core/HardParticle/FormFactorCone.cpp
index 3c035f6c8e07085fd2b8d22a96e92b2af55034ad..bf8ad89e9186ec79978db11a6a50d3a768722cc2 100644
--- a/Core/HardParticle/FormFactorCone.cpp
+++ b/Core/HardParticle/FormFactorCone.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCone.h"
-#include "BornAgainNamespace.h"
-#include "DoubleEllipse.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorCone.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/DoubleEllipse.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 //! Constructor of a truncated cone with circular base.
diff --git a/Core/HardParticle/FormFactorCone.h b/Core/HardParticle/FormFactorCone.h
index 6d719f1c45e099df77c8029fc5580119f25d839c..1ed5f7cbfb3e399c1be8f3a53709bf8137203ea9 100644
--- a/Core/HardParticle/FormFactorCone.h
+++ b/Core/HardParticle/FormFactorCone.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORCONE_H
 #define FORMFACTORCONE_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! A conical frustum (cone truncated parallel to the base) with circular base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorCone6.cpp b/Core/HardParticle/FormFactorCone6.cpp
index ab1719c0c90146af1e1bb538f7e8c4e589fbc030..f6aeb836ed106c8d5d1364df7e1e225d21c390f5 100644
--- a/Core/HardParticle/FormFactorCone6.cpp
+++ b/Core/HardParticle/FormFactorCone6.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCone6.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorCone6.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorCone6::topology = {{{{5, 4, 3, 2, 1, 0}, true},
                                                        {{0, 1, 7, 6}, false},
diff --git a/Core/HardParticle/FormFactorCone6.h b/Core/HardParticle/FormFactorCone6.h
index 9cac5b0627ba2d0d861e0e9284df41fdd607becf..4612de152518810943cb7a5a86a2f303c1ccc88f 100644
--- a/Core/HardParticle/FormFactorCone6.h
+++ b/Core/HardParticle/FormFactorCone6.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORCONE6_H
 #define FORMFACTORCONE6_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A frustum (truncated pyramid) with regular hexagonal base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorCuboctahedron.cpp b/Core/HardParticle/FormFactorCuboctahedron.cpp
index 0d4efa1952ec4649cc5f17dbb5eaf61a2a50349c..ab34166561fdff8f10b6ac8036257924bf16e5c1 100644
--- a/Core/HardParticle/FormFactorCuboctahedron.cpp
+++ b/Core/HardParticle/FormFactorCuboctahedron.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCuboctahedron.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "FormFactorPyramid.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorCuboctahedron.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/HardParticle/FormFactorPyramid.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorCuboctahedron::topology = {{{{3, 2, 1, 0}, true},
                                                                {{0, 1, 5, 4}, false},
diff --git a/Core/HardParticle/FormFactorCuboctahedron.h b/Core/HardParticle/FormFactorCuboctahedron.h
index 9a93bc1420381f0f059461d0c05e1161bb5c3a06..c2a20f73573719b3eb5e81f0e9565e52ebaa60d8 100644
--- a/Core/HardParticle/FormFactorCuboctahedron.h
+++ b/Core/HardParticle/FormFactorCuboctahedron.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORCUBOCTAHEDRON_H
 #define FORMFACTORCUBOCTAHEDRON_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A truncated bifrustum with quadratic base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorCylinder.cpp b/Core/HardParticle/FormFactorCylinder.cpp
index 85f4b5f91693265d50eb436900ae540c7b2f3c79..2afb0284543e0ca37c0875155468314f46e3586a 100644
--- a/Core/HardParticle/FormFactorCylinder.cpp
+++ b/Core/HardParticle/FormFactorCylinder.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCylinder.h"
-#include "BornAgainNamespace.h"
-#include "DoubleEllipse.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/DoubleEllipse.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 //! Constructor of a cylinder with a circular base.
 //! @param radius: radius of the circular base in nanometers
diff --git a/Core/HardParticle/FormFactorCylinder.h b/Core/HardParticle/FormFactorCylinder.h
index 2831e80223f964d6a7c60d41b0e45504a10c8441..8adbc558f714a14c99218fc6f95bf75e097f6666 100644
--- a/Core/HardParticle/FormFactorCylinder.h
+++ b/Core/HardParticle/FormFactorCylinder.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORCYLINDER_H
 #define FORMFACTORCYLINDER_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! A circular cylinder.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorDodecahedron.cpp b/Core/HardParticle/FormFactorDodecahedron.cpp
index 7de93efecfeaf7670655020606b87f4a952f22ef..6b9bef4fbb4e580ea95ba7185fdc9a7a51006bfc 100644
--- a/Core/HardParticle/FormFactorDodecahedron.cpp
+++ b/Core/HardParticle/FormFactorDodecahedron.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDodecahedron.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorDodecahedron.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorDodecahedron::topology = {{// bottom:
                                                               {{0, 4, 3, 2, 1}, false},
diff --git a/Core/HardParticle/FormFactorDodecahedron.h b/Core/HardParticle/FormFactorDodecahedron.h
index 597836e943152cae750ead80a79fbb0369d4022d..d7944b40d771d3f038b2d79d19b3bbda64c313f2 100644
--- a/Core/HardParticle/FormFactorDodecahedron.h
+++ b/Core/HardParticle/FormFactorDodecahedron.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORDODECAHEDRON_H
 #define FORMFACTORDODECAHEDRON_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A regular dodecahedron.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorDot.cpp b/Core/HardParticle/FormFactorDot.cpp
index 734421b9845ae377c2c626e770507da6ff3c24d6..663d09287480180cec6e9a924b534eb11a61bb9e 100644
--- a/Core/HardParticle/FormFactorDot.cpp
+++ b/Core/HardParticle/FormFactorDot.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDot.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorDot.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 
 //! Constructor.
 //! @param rscat: radius of a sphere with same forward scattering power, in nanometers
diff --git a/Core/HardParticle/FormFactorDot.h b/Core/HardParticle/FormFactorDot.h
index 368c0b5e757a452f14b5f06d3d4a1491d07a31f3..068c861869615bed08d36f876e65cb74277e444f 100644
--- a/Core/HardParticle/FormFactorDot.h
+++ b/Core/HardParticle/FormFactorDot.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORDOT_H
 #define FORMFACTORDOT_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! A dot, with scattering power as a sphere of radius rscat, but with F(q)=const.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
index 9079d4befec47c1a96d18312354d268f8593fadf..2f9e60cea4a1c8081d0ce7fa09edcb0fee75af11 100644
--- a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
+++ b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorEllipsoidalCylinder.h"
-#include "BornAgainNamespace.h"
-#include "DoubleEllipse.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorEllipsoidalCylinder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/DoubleEllipse.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 //! Constructor of a cylinder with an ellipse cross section.
 //! @param radius_x: radius of the ellipse base in the x-direction, in nanometers
diff --git a/Core/HardParticle/FormFactorEllipsoidalCylinder.h b/Core/HardParticle/FormFactorEllipsoidalCylinder.h
index f572be11ef0d894652b2e4880065c8bda7eee063..df38c378c4b551ce68b8dd092b1d297e505a3bf6 100644
--- a/Core/HardParticle/FormFactorEllipsoidalCylinder.h
+++ b/Core/HardParticle/FormFactorEllipsoidalCylinder.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORELLIPSOIDALCYLINDER_H
 #define FORMFACTORELLIPSOIDALCYLINDER_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! A cylinder with elliptical base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorFullSphere.cpp b/Core/HardParticle/FormFactorFullSphere.cpp
index 486c2c1e8a217231765067e0dbb7337150953c85..50b97232425416f97d87d63c945e75c60b971c60 100644
--- a/Core/HardParticle/FormFactorFullSphere.cpp
+++ b/Core/HardParticle/FormFactorFullSphere.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorFullSphere.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorTruncatedSphere.h"
-#include "FormFactorWeighted.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
-#include "Rotations.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorTruncatedSphere.h"
+#include "Core/Particle/FormFactorWeighted.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Scattering/Rotations.h"
 
 //! Constructor of a full sphere.
 //! @param radius: radius of the sphere in nanometers
diff --git a/Core/HardParticle/FormFactorFullSphere.h b/Core/HardParticle/FormFactorFullSphere.h
index fba565b2936fa969fcf40a57c9bd41a4fe4e390a..9f8d10061a8bf0c751fdbc8bd5c4f2282df5ac38 100644
--- a/Core/HardParticle/FormFactorFullSphere.h
+++ b/Core/HardParticle/FormFactorFullSphere.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORFULLSPHERE_H
 #define FORMFACTORFULLSPHERE_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! A full sphere.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorFullSpheroid.cpp b/Core/HardParticle/FormFactorFullSpheroid.cpp
index 689e21069bcdcac2b562e75dac9cebafb710f31e..2744fbdf979c5526e0c289aa5f2157b24d3b08be 100644
--- a/Core/HardParticle/FormFactorFullSpheroid.cpp
+++ b/Core/HardParticle/FormFactorFullSpheroid.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorFullSpheroid.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorTruncatedSpheroid.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/HardParticle/FormFactorFullSpheroid.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 #include <limits>
 
 //! Constructor of full spheroid.
diff --git a/Core/HardParticle/FormFactorFullSpheroid.h b/Core/HardParticle/FormFactorFullSpheroid.h
index d8c4f85258ee6b03369a5367247ebde6aef93698..eef1231adbfe1e83530c06ffe38905f69a64e9d0 100644
--- a/Core/HardParticle/FormFactorFullSpheroid.h
+++ b/Core/HardParticle/FormFactorFullSpheroid.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORFULLSPHEROID_H
 #define FORMFACTORFULLSPHEROID_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! A full spheroid (an ellipsoid with two equal axes, hence with circular cross section)
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorHemiEllipsoid.cpp b/Core/HardParticle/FormFactorHemiEllipsoid.cpp
index aab273aca874dc6dcf5bf7255f037ffb8f9d03b1..4aae41e93e98abaf4b8c37a3a6f8e880742cc619 100644
--- a/Core/HardParticle/FormFactorHemiEllipsoid.cpp
+++ b/Core/HardParticle/FormFactorHemiEllipsoid.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorHemiEllipsoid.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/HardParticle/FormFactorHemiEllipsoid.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 #include <limits>
 
 //! Constructor of horizontally oriented ellipsoid, truncated at the central plane.
diff --git a/Core/HardParticle/FormFactorHemiEllipsoid.h b/Core/HardParticle/FormFactorHemiEllipsoid.h
index 1f5f398be3ea442508b06df2bc27b0fbd1d2ea58..f73f1d4c6f12b74b48dfaf89927c2ed464c3fb53 100644
--- a/Core/HardParticle/FormFactorHemiEllipsoid.h
+++ b/Core/HardParticle/FormFactorHemiEllipsoid.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORHEMIELLIPSOID_H
 #define FORMFACTORHEMIELLIPSOID_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! An hemi ellipsoid,
 //!   obtained by truncating a full ellipsoid in the middle plane spanned by two principal axes.
diff --git a/Core/HardParticle/FormFactorIcosahedron.cpp b/Core/HardParticle/FormFactorIcosahedron.cpp
index 48316ff3892fa532ba9bdef83a1548ade70d9b7c..a450dbc9d12c8b19a43ca6018f934cd3c2b2b41a 100644
--- a/Core/HardParticle/FormFactorIcosahedron.cpp
+++ b/Core/HardParticle/FormFactorIcosahedron.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorIcosahedron.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorIcosahedron.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorIcosahedron::topology = {{// bottom:
                                                              {{0, 2, 1}, false},
diff --git a/Core/HardParticle/FormFactorIcosahedron.h b/Core/HardParticle/FormFactorIcosahedron.h
index 55c77d372f6d8abbd3c12c9112f4412b4bd64e19..d6b613079445987c277602edada760cc47b09e9a 100644
--- a/Core/HardParticle/FormFactorIcosahedron.h
+++ b/Core/HardParticle/FormFactorIcosahedron.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORICOSAHEDRON_H
 #define FORMFACTORICOSAHEDRON_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A regular icosahedron.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorLongBoxGauss.cpp b/Core/HardParticle/FormFactorLongBoxGauss.cpp
index 325877891b8262a0b7829d0fde3a6f3a91fbffcb..8dfd9cf8ed2c8b3f5f5ca2265f61026f029c4acb 100644
--- a/Core/HardParticle/FormFactorLongBoxGauss.cpp
+++ b/Core/HardParticle/FormFactorLongBoxGauss.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorLongBoxGauss.h"
-#include "BornAgainNamespace.h"
-#include "Box.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorLongBoxGauss.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/Box.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 FormFactorLongBoxGauss::FormFactorLongBoxGauss(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height)
diff --git a/Core/HardParticle/FormFactorLongBoxGauss.h b/Core/HardParticle/FormFactorLongBoxGauss.h
index 356da76ad4a425d984c80bcc88b5db9ae7561c9d..7f3c128684bac2c642d78028226b1c1ab733beda 100644
--- a/Core/HardParticle/FormFactorLongBoxGauss.h
+++ b/Core/HardParticle/FormFactorLongBoxGauss.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORLONGBOXGAUSS_H
 #define FORMFACTORLONGBOXGAUSS_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! The form factor for a long rectangular box.
 //! @ingroup legacyGrating
diff --git a/Core/HardParticle/FormFactorLongBoxLorentz.cpp b/Core/HardParticle/FormFactorLongBoxLorentz.cpp
index 236f45211114c850ddf74fa43832412872ba9b1c..a7be020c0b8256a93a015ad48c86cbcebd8bdf40 100644
--- a/Core/HardParticle/FormFactorLongBoxLorentz.cpp
+++ b/Core/HardParticle/FormFactorLongBoxLorentz.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorLongBoxLorentz.h"
-#include "BornAgainNamespace.h"
-#include "Box.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorLongBoxLorentz.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/Box.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 FormFactorLongBoxLorentz::FormFactorLongBoxLorentz(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height)
diff --git a/Core/HardParticle/FormFactorLongBoxLorentz.h b/Core/HardParticle/FormFactorLongBoxLorentz.h
index 1d621a6e9395eb39a6be8336b09a8990be2d507f..c10a32363c77d5908127f01285fa6fd998b7db01 100644
--- a/Core/HardParticle/FormFactorLongBoxLorentz.h
+++ b/Core/HardParticle/FormFactorLongBoxLorentz.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORLONGBOXLORENTZ_H
 #define FORMFACTORLONGBOXLORENTZ_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! The form factor for a long rectangular box.
 //! @ingroup legacyGrating
diff --git a/Core/HardParticle/FormFactorPolyhedron.cpp b/Core/HardParticle/FormFactorPolyhedron.cpp
index 5d203326c297d33900550b190e2b280dd0a038dd..eafe34aedea87984a1e0f06b996aabeb595d87f3 100644
--- a/Core/HardParticle/FormFactorPolyhedron.cpp
+++ b/Core/HardParticle/FormFactorPolyhedron.cpp
@@ -16,11 +16,11 @@
 //! by Joachim Wuttke, entitled
 //! "Form factor (Fourier shape transform) of polygon and polyhedron."
 
-#include "FormFactorPolyhedron.h"
-#include "MathFunctions.h"
-#include "Precomputed.h"
-#include "RealParameter.h"
-#include "Rotations.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Tools/Precomputed.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Scattering/Rotations.h"
 #include <iomanip>
 #include <stdexcept> // need overlooked by g++ 5.4
 
diff --git a/Core/HardParticle/FormFactorPolyhedron.h b/Core/HardParticle/FormFactorPolyhedron.h
index c1bb59bd8223a4dfc951d359f070ed3dbefd30bf..06690d4316276b8756cb6b7eebb98ff23be8bf3f 100644
--- a/Core/HardParticle/FormFactorPolyhedron.h
+++ b/Core/HardParticle/FormFactorPolyhedron.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORPOLYHEDRON_H
 #define FORMFACTORPOLYHEDRON_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 #include <memory>
 
 //! For internal use in PolyhedralFace.
diff --git a/Core/HardParticle/FormFactorPrism3.cpp b/Core/HardParticle/FormFactorPrism3.cpp
index 77530c430649eb95e212cc46f9079261e459c927..305cc7f5b1ec33af8de16fa33e83624ab54dc742 100644
--- a/Core/HardParticle/FormFactorPrism3.cpp
+++ b/Core/HardParticle/FormFactorPrism3.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorPrism3.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorPrism3.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <iostream>
 
 //! Constructor of a prism with an equilaterial triangle base.
diff --git a/Core/HardParticle/FormFactorPrism3.h b/Core/HardParticle/FormFactorPrism3.h
index 22950cbc58b677945998bb089b9980251d2de3f8..a67c7d3429e39f0c7514b11a4570ce3329fee786 100644
--- a/Core/HardParticle/FormFactorPrism3.h
+++ b/Core/HardParticle/FormFactorPrism3.h
@@ -14,7 +14,7 @@
 
 #ifndef FORMFACTORPRISM3_H
 #define FORMFACTORPRISM3_H
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A prism based on an equilateral triangle.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorPrism6.cpp b/Core/HardParticle/FormFactorPrism6.cpp
index 625dad901cb65066911615917650eaa3b9e86109..b0f8608e1d93c9a190af0aa715991262a08fd5fb 100644
--- a/Core/HardParticle/FormFactorPrism6.cpp
+++ b/Core/HardParticle/FormFactorPrism6.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorPrism6.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorPrism6.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 
 //! Constructor of a prism with a regular hexagonal base.
 //! @param base_edge: length of the hexagonal base in nanometers
diff --git a/Core/HardParticle/FormFactorPrism6.h b/Core/HardParticle/FormFactorPrism6.h
index 0cd0861d3feb850c19e4776db3b548fc0144396a..a3fdc40d014f020acf7db5f621c9c7d66ad7be97 100644
--- a/Core/HardParticle/FormFactorPrism6.h
+++ b/Core/HardParticle/FormFactorPrism6.h
@@ -14,7 +14,7 @@
 
 #ifndef FORMFACTORPRISM6_H
 #define FORMFACTORPRISM6_H
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A prism based on a regular hexagonal.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorPyramid.cpp b/Core/HardParticle/FormFactorPyramid.cpp
index 704889f277ee49d7725ceb1771b89918332d5452..e18a6783d33fae935320cf53d2700081e8fd3590 100644
--- a/Core/HardParticle/FormFactorPyramid.cpp
+++ b/Core/HardParticle/FormFactorPyramid.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorPyramid.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorPyramid.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorPyramid::topology = {{
                                                             {{3, 2, 1, 0}, true}, // TODO -> true
diff --git a/Core/HardParticle/FormFactorPyramid.h b/Core/HardParticle/FormFactorPyramid.h
index acac74706e5cf9dbf8690064ee79d0ccfaa7e625..c0d311474c1d83c7d88b6fb8fe8dd5558055dc97 100644
--- a/Core/HardParticle/FormFactorPyramid.h
+++ b/Core/HardParticle/FormFactorPyramid.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORPYRAMID_H
 #define FORMFACTORPYRAMID_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A frustum with a quadratic base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorRipple1.cpp b/Core/HardParticle/FormFactorRipple1.cpp
index f3ae52a2a20eda1a9b02fca25afa3cf0add50404..5a269d58f029b770758d4794369b87570c41a455 100644
--- a/Core/HardParticle/FormFactorRipple1.cpp
+++ b/Core/HardParticle/FormFactorRipple1.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorRipple1.h"
-#include "Ripples.h"
+#include "Core/HardParticle/FormFactorRipple1.h"
+#include "Core/HardParticle/Ripples.h"
 
 // ************************************************************************** //
 // class FormFactorRipple1Box
diff --git a/Core/HardParticle/FormFactorRipple1.h b/Core/HardParticle/FormFactorRipple1.h
index 2640cb974bac5d5679cfc9228c9ad4bda99bc247..1c5e166fd353a1090ee1db086097ddb78b674ad3 100644
--- a/Core/HardParticle/FormFactorRipple1.h
+++ b/Core/HardParticle/FormFactorRipple1.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORRIPPLE1_H
 #define FORMFACTORRIPPLE1_H
 
-#include "ProfileRipple1.h"
+#include "Core/HardParticle/ProfileRipple1.h"
 
 //! The form factor for a cosine ripple, with box profile in elongation direction.
 //! @ingroup legacyGrating
diff --git a/Core/HardParticle/FormFactorRipple2.cpp b/Core/HardParticle/FormFactorRipple2.cpp
index d8b65086e9418340ccd588033429120d46fcd0ba..04677dcb9c6f68561997239450aebbce461989cd 100644
--- a/Core/HardParticle/FormFactorRipple2.cpp
+++ b/Core/HardParticle/FormFactorRipple2.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorRipple2.h"
-#include "Ripples.h"
+#include "Core/HardParticle/FormFactorRipple2.h"
+#include "Core/HardParticle/Ripples.h"
 
 // ************************************************************************** //
 // class FormFactorRipple2Box
diff --git a/Core/HardParticle/FormFactorRipple2.h b/Core/HardParticle/FormFactorRipple2.h
index 738e1259f5a3abd85aea9e951530e1e1af061ed8..fadea003089d5831b1ff3628ae277e068a2289ae 100644
--- a/Core/HardParticle/FormFactorRipple2.h
+++ b/Core/HardParticle/FormFactorRipple2.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORRIPPLE2_H
 #define FORMFACTORRIPPLE2_H
 
-#include "ProfileRipple2.h"
+#include "Core/HardParticle/ProfileRipple2.h"
 
 //! The form factor for a cosine ripple, with box profile in elongation direction.
 //! @ingroup legacyGrating
diff --git a/Core/HardParticle/FormFactorTetrahedron.cpp b/Core/HardParticle/FormFactorTetrahedron.cpp
index f92d4d54eb4c691346c514d2c8c0e0ab12d36652..613780933073842f60c15ae5931971bf8ddd2848 100644
--- a/Core/HardParticle/FormFactorTetrahedron.cpp
+++ b/Core/HardParticle/FormFactorTetrahedron.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorTetrahedron.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorTetrahedron.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorTetrahedron::topology = {{{{2, 1, 0}, false},
                                                              {{0, 1, 4, 3}, false},
diff --git a/Core/HardParticle/FormFactorTetrahedron.h b/Core/HardParticle/FormFactorTetrahedron.h
index e08c4677bd309e6293d77f37d4e96b52a8306d9f..39bbdc6da28fffcb7585e72c2eb4c4d47f014274 100644
--- a/Core/HardParticle/FormFactorTetrahedron.h
+++ b/Core/HardParticle/FormFactorTetrahedron.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORTETRAHEDRON_H
 #define FORMFACTORTETRAHEDRON_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A frustum with equilateral trigonal base.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorTriangle.cpp b/Core/HardParticle/FormFactorTriangle.cpp
index 1c1534620aa4bf067329e740a2f7e4da52abef18..7991f7320b10e69339910a2be37d9f175b550afc 100644
--- a/Core/HardParticle/FormFactorTriangle.cpp
+++ b/Core/HardParticle/FormFactorTriangle.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorTriangle.h"
-#include "BornAgainNamespace.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorTriangle.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
 
 FormFactorTriangle::FormFactorTriangle(const double base_edge) : m_base_edge(base_edge)
 {
diff --git a/Core/HardParticle/FormFactorTriangle.h b/Core/HardParticle/FormFactorTriangle.h
index 2df548c7252685f4bc3de5cb48b99ccd2c5fd404..5adc5f8a78c439430b40d5a25e3230f93fd72692 100644
--- a/Core/HardParticle/FormFactorTriangle.h
+++ b/Core/HardParticle/FormFactorTriangle.h
@@ -14,7 +14,7 @@
 
 #ifndef FORMFACTORTRIANGLE_H
 #define FORMFACTORTRIANGLE_H
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A planar equilateral triangle, for testing form factor computations.
 
diff --git a/Core/HardParticle/FormFactorTruncatedCube.cpp b/Core/HardParticle/FormFactorTruncatedCube.cpp
index 2dbe513131d209400ff7768e2a8efe034f2fdc45..faab26750ef4fea5e91dcff08f601bf7459a52d2 100644
--- a/Core/HardParticle/FormFactorTruncatedCube.cpp
+++ b/Core/HardParticle/FormFactorTruncatedCube.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorTruncatedCube.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "RealParameter.h"
+#include "Core/HardParticle/FormFactorTruncatedCube.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 const PolyhedralTopology FormFactorTruncatedCube::topology = {
     {{{0, 1, 7, 6, 9, 10, 4, 3}, true},
diff --git a/Core/HardParticle/FormFactorTruncatedCube.h b/Core/HardParticle/FormFactorTruncatedCube.h
index bda8345cc441b72e04672cdd20bdc33cace4c1dd..d06ad0ddf43bbdd9e30291717982ed506d57bb26 100644
--- a/Core/HardParticle/FormFactorTruncatedCube.h
+++ b/Core/HardParticle/FormFactorTruncatedCube.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORTRUNCATEDCUBE_H
 #define FORMFACTORTRUNCATEDCUBE_H
 
-#include "FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
 
 //! A cube, with tetrahedral truncation of all corners
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorTruncatedSphere.cpp b/Core/HardParticle/FormFactorTruncatedSphere.cpp
index 962b1311cdad9aa355ccbb70fbe8ddfefbb709bb..7db083db1c641eb804c7f690f3e7011559ce8299 100644
--- a/Core/HardParticle/FormFactorTruncatedSphere.cpp
+++ b/Core/HardParticle/FormFactorTruncatedSphere.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorTruncatedSphere.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/HardParticle/FormFactorTruncatedSphere.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 #include <limits>
 
 //! Constructor of a spherical dome.
diff --git a/Core/HardParticle/FormFactorTruncatedSphere.h b/Core/HardParticle/FormFactorTruncatedSphere.h
index d18f869684767bd25cc924925c7a593102f5f15b..3c8e98e3e35df0743d127f1f383e69169f67318b 100644
--- a/Core/HardParticle/FormFactorTruncatedSphere.h
+++ b/Core/HardParticle/FormFactorTruncatedSphere.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORTRUNCATEDSPHERE_H
 #define FORMFACTORTRUNCATEDSPHERE_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! A truncated Sphere.
 //! @ingroup hardParticle
diff --git a/Core/HardParticle/FormFactorTruncatedSpheroid.cpp b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
index 2e1f0cc2bf0a6e4bca110ba97a632381f906c577..db57c8af4d824ad068050b5c482a96010116feb3 100644
--- a/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
+++ b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorTruncatedSpheroid.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 #include <limits>
 
 //! Constructor of a spheroidal dome.
diff --git a/Core/HardParticle/FormFactorTruncatedSpheroid.h b/Core/HardParticle/FormFactorTruncatedSpheroid.h
index f5e3fef88b58f0f2805b4f17cf3be83134ca5dfb..0d0ba0374ca8f28ec369a5e123db4327a1c41c9b 100644
--- a/Core/HardParticle/FormFactorTruncatedSpheroid.h
+++ b/Core/HardParticle/FormFactorTruncatedSpheroid.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORTRUNCATEDSPHEROID_H
 #define FORMFACTORTRUNCATEDSPHEROID_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! A truncated spheroid.
 //! An ellipsoid with two equal axis, truncated by a plane perpendicular to the third axis.
diff --git a/Core/HardParticle/ProfileBar.cpp b/Core/HardParticle/ProfileBar.cpp
index b42a9aaecf23f828b1a555e0233c5f3caf65c371..f0255377227efc4e16514e5d1c21f51fc658297c 100644
--- a/Core/HardParticle/ProfileBar.cpp
+++ b/Core/HardParticle/ProfileBar.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ProfileBar.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
-#include "Box.h" // from Shapes/
+#include "Core/HardParticle/ProfileBar.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/Box.h" // from Shapes/
 
 //! @brief Constructor of elongated bar
 //! @param length: length of the rectangular base in nanometers
diff --git a/Core/HardParticle/ProfileBar.h b/Core/HardParticle/ProfileBar.h
index 6e9d29fa04068ad383cd82eb85c68a12d8dd5f2a..92bee5ce67135bda9b009cb50263634e3f7bdacd 100644
--- a/Core/HardParticle/ProfileBar.h
+++ b/Core/HardParticle/ProfileBar.h
@@ -15,8 +15,8 @@
 #ifndef PROFILEBAR_H
 #define PROFILEBAR_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! Base class for form factors with a cosine ripple profile in the yz plane.
 
diff --git a/Core/HardParticle/ProfileRipple1.cpp b/Core/HardParticle/ProfileRipple1.cpp
index 8e685c60870ae82a0a75e446d0a4a43e323a7d6e..cdc37bfeb801d9786ae78cf8abfe161ce8742628 100644
--- a/Core/HardParticle/ProfileRipple1.cpp
+++ b/Core/HardParticle/ProfileRipple1.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ProfileRipple1.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
-#include "RippleCosine.h" // from Shapes/
+#include "Core/HardParticle/ProfileRipple1.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/RippleCosine.h" // from Shapes/
 
 //! @brief Constructor of cosine ripple.
 //! @param length: length of the rectangular base in nanometers
diff --git a/Core/HardParticle/ProfileRipple1.h b/Core/HardParticle/ProfileRipple1.h
index 5dba06e4ad4f6d52709bf2c832f42499e3493519..fd9a7db0b94ce236b1a10eb5d4ca9e01b172955a 100644
--- a/Core/HardParticle/ProfileRipple1.h
+++ b/Core/HardParticle/ProfileRipple1.h
@@ -15,8 +15,8 @@
 #ifndef PROFILERIPPLE1_H
 #define PROFILERIPPLE1_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! Base class for form factors with a cosine ripple profile in the yz plane.
 
diff --git a/Core/HardParticle/ProfileRipple2.cpp b/Core/HardParticle/ProfileRipple2.cpp
index ffae797632847e4332eee3b1eaad512e441e1afa..3c7a72d1c92b7d6e5213e8b60c0ff46bbe7279cf 100644
--- a/Core/HardParticle/ProfileRipple2.cpp
+++ b/Core/HardParticle/ProfileRipple2.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ProfileRipple2.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
-#include "RippleSawtooth.h" // from Shapes/
+#include "Core/HardParticle/ProfileRipple2.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/RippleSawtooth.h" // from Shapes/
 
 //! @brief Constructor of triangular ripple.
 //! @param length: length of the rectangular base in nanometers
diff --git a/Core/HardParticle/ProfileRipple2.h b/Core/HardParticle/ProfileRipple2.h
index 71c383dcdcfc0c98dcb3a5bc277e6cd93e0953c0..0c08be996b9b50ca8333ef4c667d8489c8607763 100644
--- a/Core/HardParticle/ProfileRipple2.h
+++ b/Core/HardParticle/ProfileRipple2.h
@@ -15,8 +15,8 @@
 #ifndef PROFILERIPPLE2_H
 #define PROFILERIPPLE2_H
 
-#include "IFormFactorBorn.h"
-#include "Integrator.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Tools/Integrator.h"
 
 //! Base class for form factors with a cosine ripple profile in the yz plane.
 
diff --git a/Core/HardParticle/Ripples.cpp b/Core/HardParticle/Ripples.cpp
index ea8855c284f68ca78fc71a1e2191b9841141c173..a2d88df4678249094164b9082ceccebf18af5d2a 100644
--- a/Core/HardParticle/Ripples.cpp
+++ b/Core/HardParticle/Ripples.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Ripples.h"
-#include "MathFunctions.h"
+#include "Core/HardParticle/Ripples.h"
+#include "Core/Tools/MathFunctions.h"
 
 complex_t ripples::factor_x_box(complex_t q, double r)
 {
diff --git a/Core/HardParticle/Ripples.h b/Core/HardParticle/Ripples.h
index d3194d251272ce6f0e7f7afe8e7fb6b65c55ad0e..66df7e9624f6c423463543b56508026f6abab7eb 100644
--- a/Core/HardParticle/Ripples.h
+++ b/Core/HardParticle/Ripples.h
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Complex.h"
+#include "Core/Basics/Complex.h"
 
 //! Computations for elongated particles.
 namespace ripples
diff --git a/Core/InputOutput/DataFormatUtils.cpp b/Core/InputOutput/DataFormatUtils.cpp
index 3282588879a6f18d35bf025429e92c6a94646718..a1f029a2664cbfb5c6a2ad292425fbf47c0aefe9 100644
--- a/Core/InputOutput/DataFormatUtils.cpp
+++ b/Core/InputOutput/DataFormatUtils.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "DataFormatUtils.h"
-#include "ConstKBinAxis.h"
-#include "CustomBinAxis.h"
-#include "FileSystemUtils.h"
-#include "OutputData.h"
-#include "PointwiseAxis.h"
-#include "StringUtils.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Binning/ConstKBinAxis.h"
+#include "Core/Binning/CustomBinAxis.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Fit/Tools/StringUtils.h"
 #include <iostream>
 #include <iterator>
 
diff --git a/Core/InputOutput/DataFormatUtils.h b/Core/InputOutput/DataFormatUtils.h
index fbdd6e9803e3d08da971ded7b552df1504767e40..16aba5193dd2e617fa2a17ceeb438cb2585d5b6d 100644
--- a/Core/InputOutput/DataFormatUtils.h
+++ b/Core/InputOutput/DataFormatUtils.h
@@ -15,7 +15,7 @@
 #ifndef DATAFORMATUTILS_H
 #define DATAFORMATUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <string>
 #include <vector>
diff --git a/Core/InputOutput/IntensityDataIOFactory.cpp b/Core/InputOutput/IntensityDataIOFactory.cpp
index 839ff43538beb469048f584ce0d1c60c82633f28..f31a98da52756d33cc9470c6d8b3ffa844011edf 100644
--- a/Core/InputOutput/IntensityDataIOFactory.cpp
+++ b/Core/InputOutput/IntensityDataIOFactory.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataIOFactory.h"
-#include "FileSystemUtils.h"
-#include "IHistogram.h"
-#include "OutputDataReadFactory.h"
-#include "OutputDataWriteFactory.h"
-#include "SimulationResult.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/Instrument/IHistogram.h"
+#include "Core/InputOutput/OutputDataReadFactory.h"
+#include "Core/InputOutput/OutputDataWriteFactory.h"
+#include "Core/Instrument/SimulationResult.h"
 #include <fstream>
 #include <memory>
 
diff --git a/Core/InputOutput/IntensityDataIOFactory.h b/Core/InputOutput/IntensityDataIOFactory.h
index a14b29c84cf2747fa1bdad81d99b4ef284093d49..965234e87aefb67fca33952e460aee06c24ca067 100644
--- a/Core/InputOutput/IntensityDataIOFactory.h
+++ b/Core/InputOutput/IntensityDataIOFactory.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAIOFACTORY_H
 #define INTENSITYDATAIOFACTORY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 template <class T> class OutputData;
diff --git a/Core/InputOutput/OutputDataReadFactory.cpp b/Core/InputOutput/OutputDataReadFactory.cpp
index 0dce7d067ac11a985b213f58f59b51ca7748f133..9d700bc12791c5a68b25587c4d7e1dc7f98363b3 100644
--- a/Core/InputOutput/OutputDataReadFactory.cpp
+++ b/Core/InputOutput/OutputDataReadFactory.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataReadFactory.h"
-#include "DataFormatUtils.h"
-#include "Exceptions.h"
+#include "Core/InputOutput/OutputDataReadFactory.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Basics/Exceptions.h"
 
 OutputDataReader* OutputDataReadFactory::getReader(const std::string& file_name)
 {
diff --git a/Core/InputOutput/OutputDataReadFactory.h b/Core/InputOutput/OutputDataReadFactory.h
index 5802d64dc019b053771cef217a48eb6db88d8502..3cf911b9ee63c26750e9ca93ddea369c400aa905 100644
--- a/Core/InputOutput/OutputDataReadFactory.h
+++ b/Core/InputOutput/OutputDataReadFactory.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAREADFACTORY_H
 #define OUTPUTDATAREADFACTORY_H
 
-#include "OutputDataReader.h"
+#include "Core/InputOutput/OutputDataReader.h"
 
 //! Creates reader appropariate for given type of files.
 //! @ingroup input_output_internal
diff --git a/Core/InputOutput/OutputDataReadStrategy.cpp b/Core/InputOutput/OutputDataReadStrategy.cpp
index 9d814b336d1aa3fadf23d17e55f03da7094e170e..41c64c04191cbe5823b94a2f7b13a59ec9e25005 100644
--- a/Core/InputOutput/OutputDataReadStrategy.cpp
+++ b/Core/InputOutput/OutputDataReadStrategy.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataReadStrategy.h"
-#include "ArrayUtils.h"
-#include "DataFormatUtils.h"
-#include "OutputData.h"
-#include "PointwiseAxis.h"
-#include "TiffHandler.h"
+#include "Core/InputOutput/OutputDataReadStrategy.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/InputOutput/TiffHandler.h"
 #include <map>
 #include <stdexcept> // need overlooked by g++ 5.4
 
diff --git a/Core/InputOutput/OutputDataReadStrategy.h b/Core/InputOutput/OutputDataReadStrategy.h
index 817a7b97b013637ec9536fa7eedf309b784f321b..00991a03e08992dda44c7acd20612005f72b3318 100644
--- a/Core/InputOutput/OutputDataReadStrategy.h
+++ b/Core/InputOutput/OutputDataReadStrategy.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAREADSTRATEGY_H
 #define OUTPUTDATAREADSTRATEGY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <istream>
 
 template <class T> class OutputData;
diff --git a/Core/InputOutput/OutputDataReader.cpp b/Core/InputOutput/OutputDataReader.cpp
index ce91b91cdc660137864cbe4a466ee9f4e4533325..fce5829aa9f83228f705646027467e3e34d85ac5 100644
--- a/Core/InputOutput/OutputDataReader.cpp
+++ b/Core/InputOutput/OutputDataReader.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataReader.h"
-#include "DataFormatUtils.h"
-#include "OutputData.h"
+#include "Core/InputOutput/OutputDataReader.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Instrument/OutputData.h"
 #ifdef _WIN32
 #pragma warning(push)
 #pragma warning(disable : 4244 4275)
-#include "boost_streams.h"
+#include "Core/InputOutput/boost_streams.h"
 #pragma warning(pop)
 #else
-#include "boost_streams.h"
+#include "Core/InputOutput/boost_streams.h"
 #endif
-#include "FileSystemUtils.h"
+#include "Core/Tools/FileSystemUtils.h"
 #include <fstream>
 
 OutputDataReader::OutputDataReader(const std::string& file_name) : m_file_name(file_name) {}
diff --git a/Core/InputOutput/OutputDataReader.h b/Core/InputOutput/OutputDataReader.h
index 6028ef2c5ab994f5a7f1413a77a2490a854f0748..4b81a82c2485f4237fd74f28b2cae5f002318384 100644
--- a/Core/InputOutput/OutputDataReader.h
+++ b/Core/InputOutput/OutputDataReader.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAREADER_H
 #define OUTPUTDATAREADER_H
 
-#include "OutputDataReadStrategy.h"
+#include "Core/InputOutput/OutputDataReadStrategy.h"
 #include <memory>
 
 template <class T> class OutputData;
diff --git a/Core/InputOutput/OutputDataWriteFactory.cpp b/Core/InputOutput/OutputDataWriteFactory.cpp
index f552465203553fe8d6977c51e5dee55e3a0d2b79..f19bb513c9552fcd822eb6c03c769f7ff0a4c33d 100644
--- a/Core/InputOutput/OutputDataWriteFactory.cpp
+++ b/Core/InputOutput/OutputDataWriteFactory.cpp
@@ -11,9 +11,9 @@
 //! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
 //
 // ************************************************************************** //
-#include "OutputDataWriteFactory.h"
-#include "DataFormatUtils.h"
-#include "Exceptions.h"
+#include "Core/InputOutput/OutputDataWriteFactory.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Basics/Exceptions.h"
 
 OutputDataWriter* OutputDataWriteFactory::getWriter(const std::string& file_name)
 {
diff --git a/Core/InputOutput/OutputDataWriteFactory.h b/Core/InputOutput/OutputDataWriteFactory.h
index 5822d24b5da861773dd0f129432fa1ec47c5ccf2..f6f76857001c001c6ed88761efcdc55de64b5a01 100644
--- a/Core/InputOutput/OutputDataWriteFactory.h
+++ b/Core/InputOutput/OutputDataWriteFactory.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAWRITEFACTORY_H
 #define OUTPUTDATAWRITEFACTORY_H
 
-#include "OutputDataWriter.h"
+#include "Core/InputOutput/OutputDataWriter.h"
 
 //! Creates writer appropariate for given type of files.
 //! @ingroup input_output_internal
diff --git a/Core/InputOutput/OutputDataWriteStrategy.cpp b/Core/InputOutput/OutputDataWriteStrategy.cpp
index b32dac208e20a994c298458d857d2d9e131a62d0..ff46dc5e2ebf4c077813bb869d8d7beef677fd1f 100644
--- a/Core/InputOutput/OutputDataWriteStrategy.cpp
+++ b/Core/InputOutput/OutputDataWriteStrategy.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataWriteStrategy.h"
-#include "ArrayUtils.h"
-#include "BornAgainNamespace.h"
-#include "OutputData.h" // needed by some compilers
-#include "TiffHandler.h"
+#include "Core/InputOutput/OutputDataWriteStrategy.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/OutputData.h" // needed by some compilers
+#include "Core/InputOutput/TiffHandler.h"
 #include <cmath>
 #include <iomanip>
 
diff --git a/Core/InputOutput/OutputDataWriteStrategy.h b/Core/InputOutput/OutputDataWriteStrategy.h
index 968f0055d2f4a8d5c69b9d779c6bff248ac8e184..1ff309b0d3b130136f6eb468d97e6378de7c2778 100644
--- a/Core/InputOutput/OutputDataWriteStrategy.h
+++ b/Core/InputOutput/OutputDataWriteStrategy.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAWRITESTRATEGY_H
 #define OUTPUTDATAWRITESTRATEGY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <istream>
 
 template <class T> class OutputData;
diff --git a/Core/InputOutput/OutputDataWriter.cpp b/Core/InputOutput/OutputDataWriter.cpp
index c876fcbbbf9a25eaab2ccaf694cd1c786ac7ff33..fe5ca165f0becd3c572a25b7b961399d4be9fe08 100644
--- a/Core/InputOutput/OutputDataWriter.cpp
+++ b/Core/InputOutput/OutputDataWriter.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataWriter.h"
-#include "DataFormatUtils.h"
-#include "OutputData.h"
+#include "Core/InputOutput/OutputDataWriter.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Instrument/OutputData.h"
 #ifdef _WIN32
 #pragma warning(push)
 #pragma warning(disable : 4244 4275)
-#include "boost_streams.h"
+#include "Core/InputOutput/boost_streams.h"
 #pragma warning(pop)
 #else
-#include "boost_streams.h"
+#include "Core/InputOutput/boost_streams.h"
 #endif
-#include "FileSystemUtils.h"
+#include "Core/Tools/FileSystemUtils.h"
 #include <fstream>
 
 OutputDataWriter::OutputDataWriter(const std::string& file_name) : m_file_name(file_name) {}
diff --git a/Core/InputOutput/OutputDataWriter.h b/Core/InputOutput/OutputDataWriter.h
index 9dedb3f979e950f1cf96c271c1c66adcc0aeb498..85370cfd30ea8d560293eb2ebce3ebb6c1d56ae1 100644
--- a/Core/InputOutput/OutputDataWriter.h
+++ b/Core/InputOutput/OutputDataWriter.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAWRITER_H
 #define OUTPUTDATAWRITER_H
 
-#include "OutputDataWriteStrategy.h"
+#include "Core/InputOutput/OutputDataWriteStrategy.h"
 #include <memory>
 
 template <class T> class OutputData;
diff --git a/Core/InputOutput/TiffHandler.cpp b/Core/InputOutput/TiffHandler.cpp
index b255efd8b294d148ace40e85056781534567c47d..45a17794754a7b1cbb5136c4fab0a2eac5bd97b5 100644
--- a/Core/InputOutput/TiffHandler.cpp
+++ b/Core/InputOutput/TiffHandler.cpp
@@ -14,9 +14,9 @@
 
 #ifdef BORNAGAIN_TIFF_SUPPORT
 
-#include "TiffHandler.h"
-#include "BornAgainNamespace.h"
-#include "SysUtils.h"
+#include "Core/InputOutput/TiffHandler.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Tools/SysUtils.h"
 #include <tiffio.hxx>
 
 TiffHandler::TiffHandler()
diff --git a/Core/InputOutput/TiffHandler.h b/Core/InputOutput/TiffHandler.h
index 25d9124ca96819739688e8cc49d48638a412209b..ebbfa2e3995e2df847b882e047a90adb70f6bade 100644
--- a/Core/InputOutput/TiffHandler.h
+++ b/Core/InputOutput/TiffHandler.h
@@ -17,7 +17,7 @@
 
 #ifdef BORNAGAIN_TIFF_SUPPORT
 
-#include "OutputData.h"
+#include "Core/Instrument/OutputData.h"
 #include <memory>
 #include <tiffio.h>
 
diff --git a/Core/Instrument/AngularSpecScan.cpp b/Core/Instrument/AngularSpecScan.cpp
index adfc4b39e37ef78e26f7f7cf5f21cc45ca7d12f8..bdf2c06f6a8b0a4b28d4aa356f3be85a521777ee 100644
--- a/Core/Instrument/AngularSpecScan.cpp
+++ b/Core/Instrument/AngularSpecScan.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "AngularSpecScan.h"
-#include "FixedBinAxis.h"
-#include "IFootprintFactor.h"
-#include "ParameterSample.h"
-#include "PointwiseAxis.h"
-#include "PythonFormatting.h"
-#include "RangedDistributions.h"
-#include "RealLimits.h"
-#include "ScanResolution.h"
-#include "SpecularSimulationElement.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Beam/IFootprintFactor.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
 
 namespace
 {
diff --git a/Core/Instrument/AngularSpecScan.h b/Core/Instrument/AngularSpecScan.h
index c0f61b01b9a72b4e8b472acaaa5c4968aa213327..3c35bb7bcb3caf9528991a8ed10b1a1d18f21296 100644
--- a/Core/Instrument/AngularSpecScan.h
+++ b/Core/Instrument/AngularSpecScan.h
@@ -15,7 +15,7 @@
 #ifndef ANGULARSPECSCAN_H
 #define ANGULARSPECSCAN_H
 
-#include "ISpecularScan.h"
+#include "Core/Instrument/ISpecularScan.h"
 #include <memory>
 
 class ParameterSample;
diff --git a/Core/Instrument/ArrayUtils.cpp b/Core/Instrument/ArrayUtils.cpp
index 791d22e0cabc04e7471124c287d6f54fcf7738b1..d40c81a3b2bd8e83679cf133c3915184cd5acd83 100644
--- a/Core/Instrument/ArrayUtils.cpp
+++ b/Core/Instrument/ArrayUtils.cpp
@@ -14,9 +14,9 @@
 
 #ifdef BORNAGAIN_PYTHON
 
-#include "ArrayUtils.h"
-#include "Exceptions.h"
-#include "PythonCore.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Tools/PythonCore.h"
 
 PyObject* ArrayUtils::createNumpyArray(const std::vector<double>& data)
 {
diff --git a/Core/Instrument/ArrayUtils.h b/Core/Instrument/ArrayUtils.h
index bd6c59194f92b1c98b608c888d77c92098fe7e4e..365f6afea0859881eda67273c052f194f9e3d219 100644
--- a/Core/Instrument/ArrayUtils.h
+++ b/Core/Instrument/ArrayUtils.h
@@ -15,8 +15,8 @@
 #ifndef ARRAYUTILS_H
 #define ARRAYUTILS_H
 
-#include "OutputData.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/OutputData.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <stdexcept>
 #include <vector>
diff --git a/Core/Instrument/AxisNames.cpp b/Core/Instrument/AxisNames.cpp
index 805b85f22577efa1842d847b0f0ab27177099ee9..75e30e458fbdae9068337419cc6a0f46c0b16bdc 100644
--- a/Core/Instrument/AxisNames.cpp
+++ b/Core/Instrument/AxisNames.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "AxisNames.h"
+#include "Core/Instrument/AxisNames.h"
 #include <map>
 
 namespace AxisNames
diff --git a/Core/Instrument/AxisNames.h b/Core/Instrument/AxisNames.h
index c267681174b128d1f8a75478fc87d63bc5824ac4..e3244def0cf69fe92f9f78dbc3e5ad130fe797f1 100644
--- a/Core/Instrument/AxisNames.h
+++ b/Core/Instrument/AxisNames.h
@@ -15,7 +15,7 @@
 #ifndef AXISNAMES_H
 #define AXISNAMES_H
 
-#include "IUnitConverter.h"
+#include "Core/Instrument/IUnitConverter.h"
 #include <map>
 
 //! Contains functions to create maps that give the right axis names for different
diff --git a/Core/Instrument/ChiSquaredModule.cpp b/Core/Instrument/ChiSquaredModule.cpp
index fa8c731251e694aa44f3d8138e14a5fcb73f95d7..ac0ad9420e487f47847d120beea9b88639a1d467 100644
--- a/Core/Instrument/ChiSquaredModule.cpp
+++ b/Core/Instrument/ChiSquaredModule.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ChiSquaredModule.h"
-#include "IIntensityFunction.h"
-#include "VarianceFunctions.h"
+#include "Core/Instrument/ChiSquaredModule.h"
+#include "Core/Instrument/IIntensityFunction.h"
+#include "Core/Instrument/VarianceFunctions.h"
 #include <cassert>
 #include <cmath>
 #include <limits>
diff --git a/Core/Instrument/ChiSquaredModule.h b/Core/Instrument/ChiSquaredModule.h
index a8f2f742f2acb6538ff9a6082c08a6b5ea66ad39..1d5cee882f708e13c855085b0ebc51b3f6fc3c24 100644
--- a/Core/Instrument/ChiSquaredModule.h
+++ b/Core/Instrument/ChiSquaredModule.h
@@ -15,7 +15,7 @@
 #ifndef CHISQUAREDMODULE_H
 #define CHISQUAREDMODULE_H
 
-#include "IChiSquaredModule.h"
+#include "Core/Instrument/IChiSquaredModule.h"
 
 //! Calculation of chi2 between two data sets.
 //! @ingroup fitting
diff --git a/Core/Instrument/ConvolutionDetectorResolution.cpp b/Core/Instrument/ConvolutionDetectorResolution.cpp
index 39d57e326d18fc17e8c086e19ecca56148053a46..b926d22712a41304f4e97492cbe092d73577e216 100644
--- a/Core/Instrument/ConvolutionDetectorResolution.cpp
+++ b/Core/Instrument/ConvolutionDetectorResolution.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ConvolutionDetectorResolution.h"
-#include "Convolve.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "Core/Instrument/Convolve.h"
 
 ConvolutionDetectorResolution::ConvolutionDetectorResolution(cumulative_DF_1d res_function_1d)
     : m_dimension(1), m_res_function_1d(res_function_1d)
diff --git a/Core/Instrument/ConvolutionDetectorResolution.h b/Core/Instrument/ConvolutionDetectorResolution.h
index 1f2a0f4b35610e649743f40b1dd6eba5428d59d6..b1d2c3d9c9f60283f607c58f76891512d5ff9607 100644
--- a/Core/Instrument/ConvolutionDetectorResolution.h
+++ b/Core/Instrument/ConvolutionDetectorResolution.h
@@ -15,8 +15,8 @@
 #ifndef CONVOLUTIONDETECTORRESOLUTION_H
 #define CONVOLUTIONDETECTORRESOLUTION_H
 
-#include "IDetectorResolution.h"
-#include "IResolutionFunction2D.h"
+#include "Core/Instrument/IDetectorResolution.h"
+#include "Core/Instrument/IResolutionFunction2D.h"
 
 //! Convolutes the intensity in 1 or 2 dimensions with a resolution function.
 //! @ingroup detector
diff --git a/Core/Instrument/Convolve.cpp b/Core/Instrument/Convolve.cpp
index 5b2aa40502a645cfb6a09a91ca1bcc2ae16cc98c..05e9d61550ebcc68480e0eb2e024d188b656512d 100644
--- a/Core/Instrument/Convolve.cpp
+++ b/Core/Instrument/Convolve.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Convolve.h"
-#include "Exceptions.h"
+#include "Core/Instrument/Convolve.h"
+#include "Core/Basics/Exceptions.h"
 #include <iostream>
 #include <sstream>
 #include <stdexcept> // need overlooked by g++ 5.4
diff --git a/Core/Instrument/Convolve.h b/Core/Instrument/Convolve.h
index 5c5a7320c572e55eb999ce7d50deea80ed1198f5..30dbc21f86f835b684c0bae6030590eaccb4b537 100644
--- a/Core/Instrument/Convolve.h
+++ b/Core/Instrument/Convolve.h
@@ -15,7 +15,7 @@
 #ifndef CONVOLVE_H
 #define CONVOLVE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <fftw3.h>
 #include <vector>
 
diff --git a/Core/Instrument/CumulativeValue.cpp b/Core/Instrument/CumulativeValue.cpp
index b2dd4ba86555736eaf953343530b72734b74889c..e843f6dba50d2dbc4ef2636bd8523489cf0ae891 100644
--- a/Core/Instrument/CumulativeValue.cpp
+++ b/Core/Instrument/CumulativeValue.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "CumulativeValue.h"
+#include "Core/Instrument/CumulativeValue.h"
 #include <cmath>
 
 double CumulativeValue::getRMS() const
diff --git a/Core/Instrument/CumulativeValue.h b/Core/Instrument/CumulativeValue.h
index 6d9edb0622c4ae209dd0cafbddac08cbdfd54d32..2a7602ea2900ad7af35cfcb4856ccea4617d08d1 100644
--- a/Core/Instrument/CumulativeValue.h
+++ b/Core/Instrument/CumulativeValue.h
@@ -15,7 +15,7 @@
 #ifndef CUMULATIVEVALUE_H
 #define CUMULATIVEVALUE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! The cumulative value with average and rms on-the-flight calculations.
 //! @ingroup tools
diff --git a/Core/Instrument/DetectionProperties.cpp b/Core/Instrument/DetectionProperties.cpp
index 6c3f1a44273adc23807a7f4887f33f1306795c8e..c0fced726ea0ff22d1a18361c463b86e342762c9 100644
--- a/Core/Instrument/DetectionProperties.cpp
+++ b/Core/Instrument/DetectionProperties.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "DetectionProperties.h"
-#include "Complex.h"
-#include "Exceptions.h"
-#include "RealParameter.h"
+#include "Core/Instrument/DetectionProperties.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 DetectionProperties::DetectionProperties()
     : m_direction{}, m_efficiency{}, m_total_transmission{1.0}
diff --git a/Core/Instrument/DetectionProperties.h b/Core/Instrument/DetectionProperties.h
index 6c1924b1dadf07929572d81540954f58047b13d1..ac96522e9f6ba52a2150d1f06fb269a988199425 100644
--- a/Core/Instrument/DetectionProperties.h
+++ b/Core/Instrument/DetectionProperties.h
@@ -15,10 +15,10 @@
 #ifndef DETECTIONPROPERTIES_H
 #define DETECTIONPROPERTIES_H
 
-#include "EigenCore.h"
-#include "INode.h"
-#include "Vectors3D.h"
-#include "WinDllMacros.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Detector properties (efficiency, transmission).
 //! @ingroup detector
diff --git a/Core/Instrument/DetectorContext.cpp b/Core/Instrument/DetectorContext.cpp
index b9a1894d1d23ef300d0c72d7b4bf5ac76eda9add..d8851f06dce04c80b84fd35844a729f337f0aab8 100644
--- a/Core/Instrument/DetectorContext.cpp
+++ b/Core/Instrument/DetectorContext.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DetectorContext.h"
-#include "IDetector2D.h"
+#include "Core/Instrument/DetectorContext.h"
+#include "Core/Instrument/IDetector2D.h"
 
 DetectorContext::DetectorContext(const IDetector2D* detector)
 {
diff --git a/Core/Instrument/DetectorContext.h b/Core/Instrument/DetectorContext.h
index eb1b6763007c76eb97e40ead0286ed9f5b6beff9..3ba8f5bde9d8e1078e8a95fc9559d9d213d3d13a 100644
--- a/Core/Instrument/DetectorContext.h
+++ b/Core/Instrument/DetectorContext.h
@@ -15,9 +15,9 @@
 #ifndef DETECTORCONTEXT_H
 #define DETECTORCONTEXT_H
 
-#include "EigenCore.h"
-#include "IPixel.h"
-#include "WinDllMacros.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Binning/IPixel.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Instrument/DetectorFunctions.cpp b/Core/Instrument/DetectorFunctions.cpp
index ec1681cfd2e481227417c7c190558787997aaec4..63ffad36f961986d655c75e987e80b6f7bed4056 100644
--- a/Core/Instrument/DetectorFunctions.cpp
+++ b/Core/Instrument/DetectorFunctions.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "DetectorFunctions.h"
-#include "Instrument.h"
-#include "OutputData.h"
-#include "SimulationArea.h"
-#include "SimulationAreaIterator.h"
-#include "StringUtils.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/Instrument/SimulationAreaIterator.h"
+#include "Fit/Tools/StringUtils.h"
 #include <algorithm>
 #include <cctype>
 #include <map>
diff --git a/Core/Instrument/DetectorFunctions.h b/Core/Instrument/DetectorFunctions.h
index b92aa2095a6f8d817be8c86317228d02ef3fe356..3e9f6139aab6b5a79fe214c98eb99e64452640c5 100644
--- a/Core/Instrument/DetectorFunctions.h
+++ b/Core/Instrument/DetectorFunctions.h
@@ -15,8 +15,8 @@
 #ifndef DETECTORFUNCTIONS_H
 #define DETECTORFUNCTIONS_H
 
-#include "IDetector.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/IDetector.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <memory>
 #include <string>
diff --git a/Core/Instrument/DetectorMask.cpp b/Core/Instrument/DetectorMask.cpp
index 90e8e4f115d76cf943a562d39a86a47a217fb68d..3038dab7008f2ac167ab1de7b903e30ac2d3466c 100644
--- a/Core/Instrument/DetectorMask.cpp
+++ b/Core/Instrument/DetectorMask.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "BornAgainNamespace.h"
-#include "Histogram2D.h"
-#include "IDetector2D.h"
-#include "RegionOfInterest.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Instrument/RegionOfInterest.h"
 
 DetectorMask::DetectorMask() : m_number_of_masked_channels(0) {}
 
diff --git a/Core/Instrument/DetectorMask.h b/Core/Instrument/DetectorMask.h
index 9eba18a3b0545f50df947493cd020c1bf66c266e..ec65120d80d80ec7dd3b333d089d3df6e9dca4a2 100644
--- a/Core/Instrument/DetectorMask.h
+++ b/Core/Instrument/DetectorMask.h
@@ -15,8 +15,8 @@
 #ifndef DETECTORMASK_H
 #define DETECTORMASK_H
 
-#include "IShape2D.h"
-#include "OutputData.h"
+#include "Core/Mask/IShape2D.h"
+#include "Core/Instrument/OutputData.h"
 
 class IDetector2D;
 template <class T> class OutputData;
diff --git a/Core/Instrument/FourierTransform.cpp b/Core/Instrument/FourierTransform.cpp
index f5fcb06d0f4329c0a29cdcd599950691d97c1bc4..e08e5c32451453723fef8c28b529db5ce53eb56b 100644
--- a/Core/Instrument/FourierTransform.cpp
+++ b/Core/Instrument/FourierTransform.cpp
@@ -13,8 +13,8 @@
 //
 // ************************************************************************** //
 
-#include "FourierTransform.h"
-#include "Exceptions.h"
+#include "Core/Instrument/FourierTransform.h"
+#include "Core/Basics/Exceptions.h"
 #include <algorithm>
 #include <iostream>
 #include <math.h>
diff --git a/Core/Instrument/FourierTransform.h b/Core/Instrument/FourierTransform.h
index a67d52aabe54512111da0f46ca583812fb54e599..bb4d04d3fe279cf9fb4ebc76a8346eab13a8279e 100644
--- a/Core/Instrument/FourierTransform.h
+++ b/Core/Instrument/FourierTransform.h
@@ -16,7 +16,7 @@
 #ifndef FOURIERTRANSFORM_H
 #define FOURIERTRANSFORM_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <fftw3.h>
 #include <vector>
 
diff --git a/Core/Instrument/Histogram1D.cpp b/Core/Instrument/Histogram1D.cpp
index c9dcc7a0365c2e10f760417483b968891a8d250d..4387b9c0f72b77bc95f7108a5b06dae9d63ff4f0 100644
--- a/Core/Instrument/Histogram1D.cpp
+++ b/Core/Instrument/Histogram1D.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Histogram1D.h"
-#include "ArrayUtils.h"
-#include "VariableBinAxis.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Binning/VariableBinAxis.h"
 #include <memory>
 
 Histogram1D::Histogram1D(int nbinsx, double xlow, double xup)
diff --git a/Core/Instrument/Histogram1D.h b/Core/Instrument/Histogram1D.h
index 732f50d648f4b6a0ac9581e9e07249f3505fae6b..4b9761451de18c3df112e0626894ccd7eafb691d 100644
--- a/Core/Instrument/Histogram1D.h
+++ b/Core/Instrument/Histogram1D.h
@@ -15,7 +15,7 @@
 #ifndef HISTOGRAM1D_H
 #define HISTOGRAM1D_H
 
-#include "IHistogram.h"
+#include "Core/Instrument/IHistogram.h"
 
 //! One dimensional histogram.
 //! @ingroup tools
diff --git a/Core/Instrument/Histogram2D.cpp b/Core/Instrument/Histogram2D.cpp
index 93216801f3d4f8a9cfada68ef9d609813c489eeb..a9971c903a5f76edac39193997babf70773af1c4 100644
--- a/Core/Instrument/Histogram2D.cpp
+++ b/Core/Instrument/Histogram2D.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Histogram2D.h"
-#include "ArrayUtils.h"
-#include "BornAgainNamespace.h"
-#include "Histogram1D.h"
-#include "VariableBinAxis.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Binning/VariableBinAxis.h"
 #include <memory>
 
 Histogram2D::Histogram2D(int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup)
diff --git a/Core/Instrument/Histogram2D.h b/Core/Instrument/Histogram2D.h
index fb282c7d8fb12770b4c0e9ca4cd7bc1d51b6629c..ba2a084db19e319e0f5a543626450def635498f9 100644
--- a/Core/Instrument/Histogram2D.h
+++ b/Core/Instrument/Histogram2D.h
@@ -15,8 +15,8 @@
 #ifndef HISTOGRAM2D_H
 #define HISTOGRAM2D_H
 
-#include "ArrayUtils.h"
-#include "IHistogram.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Instrument/IHistogram.h"
 
 //! Two dimensional histogram.
 //! @ingroup tools
diff --git a/Core/Instrument/IChiSquaredModule.cpp b/Core/Instrument/IChiSquaredModule.cpp
index 6fe956d9933e10f89cbfe64905c2c997cf34965d..9f65a123d791bfc3a647e38af60e4cdeca847436 100644
--- a/Core/Instrument/IChiSquaredModule.cpp
+++ b/Core/Instrument/IChiSquaredModule.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IChiSquaredModule.h"
-#include "IIntensityFunction.h"
-#include <VarianceFunctions.h>
+#include "Core/Instrument/IChiSquaredModule.h"
+#include "Core/Instrument/IIntensityFunction.h"
+#include "Core/Instrument/VarianceFunctions.h"
 
 IChiSquaredModule::IChiSquaredModule() : m_variance_function(new VarianceSimFunction) {}
 
diff --git a/Core/Instrument/IChiSquaredModule.h b/Core/Instrument/IChiSquaredModule.h
index 06a00d52c0ca3c4dfb10d7a0c8d7e37d86565dc4..eba8866ed8c8af9d7b075b90d3021eec010e28bc 100644
--- a/Core/Instrument/IChiSquaredModule.h
+++ b/Core/Instrument/IChiSquaredModule.h
@@ -15,7 +15,7 @@
 #ifndef ICHISQUAREDMODULE_H
 #define ICHISQUAREDMODULE_H
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 #include <memory>
 
 class IVarianceFunction;
diff --git a/Core/Instrument/IDetector.cpp b/Core/Instrument/IDetector.cpp
index 03c8cea704ae584d3c30b336eb0aad177f72aaed..17014f691d938b83107756aa0ccc2c542389a31d 100644
--- a/Core/Instrument/IDetector.cpp
+++ b/Core/Instrument/IDetector.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "IDetector.h"
-#include "ConvolutionDetectorResolution.h"
-#include "DetectorMask.h"
-#include "IDetectorResolution.h"
-#include "OutputData.h"
-#include "RegionOfInterest.h"
-#include "SimulationArea.h"
-#include "SimulationElement.h"
+#include "Core/Instrument/IDetector.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "Core/Instrument/DetectorMask.h"
+#include "Core/Instrument/IDetectorResolution.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 IDetector::IDetector()
 {
diff --git a/Core/Instrument/IDetector.h b/Core/Instrument/IDetector.h
index 30d509c201dcda883d91624416aaa56707f9c24c..4ffef7aaf01b8d6e18560d9c1678745e330afe1a 100644
--- a/Core/Instrument/IDetector.h
+++ b/Core/Instrument/IDetector.h
@@ -15,13 +15,13 @@
 #ifndef IDETECTOR_H_
 #define IDETECTOR_H_
 
-#include "DetectionProperties.h"
-#include "IAxis.h"
-#include "ICloneable.h"
-#include "INode.h"
-#include "IUnitConverter.h"
-#include "SafePointerVector.h"
-#include "SimulationAreaIterator.h"
+#include "Core/Instrument/DetectionProperties.h"
+#include "Core/Binning/IAxis.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Instrument/IUnitConverter.h"
+#include "Core/Tools/SafePointerVector.h"
+#include "Core/Instrument/SimulationAreaIterator.h"
 
 class Beam;
 class DetectorMask;
diff --git a/Core/Instrument/IDetector2D.cpp b/Core/Instrument/IDetector2D.cpp
index 6f4db81103dfbc3148844cf752fdbca9aa83a74e..3691421d332ac7799339a162f6bfb3110c55c9dc 100644
--- a/Core/Instrument/IDetector2D.cpp
+++ b/Core/Instrument/IDetector2D.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "IDetector2D.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "DetectorContext.h"
-#include "DetectorFunctions.h"
-#include "InfinitePlane.h"
-#include "RegionOfInterest.h"
-#include "SimulationArea.h"
-#include "SimulationElement.h"
-#include "Units.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/DetectorContext.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Mask/InfinitePlane.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Parametrization/Units.h"
 
 IDetector2D::IDetector2D() = default;
 
diff --git a/Core/Instrument/IDetector2D.h b/Core/Instrument/IDetector2D.h
index 0cae2b6d1aa6b58c2feddc5e409127e7b0b77fd2..f20f63b34a43bf8c36d522c9b81e7fc48e4f8c1b 100644
--- a/Core/Instrument/IDetector2D.h
+++ b/Core/Instrument/IDetector2D.h
@@ -15,8 +15,8 @@
 #ifndef IDETECTOR2D_H
 #define IDETECTOR2D_H
 
-#include "DetectorMask.h"
-#include "IDetector.h"
+#include "Core/Instrument/DetectorMask.h"
+#include "Core/Instrument/IDetector.h"
 #include <memory>
 
 class Beam;
diff --git a/Core/Instrument/IDetectorResolution.h b/Core/Instrument/IDetectorResolution.h
index b412ee0a15260896832321ed75bd255b9feda61e..3ec39ce952cc219bd88cdc93aafecf5117ea4843 100644
--- a/Core/Instrument/IDetectorResolution.h
+++ b/Core/Instrument/IDetectorResolution.h
@@ -15,9 +15,9 @@
 #ifndef IDETECTORRESOLUTION_H
 #define IDETECTORRESOLUTION_H
 
-#include "ICloneable.h"
-#include "INode.h"
-#include "OutputData.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Instrument/OutputData.h"
 
 //! Interface for detector resolution algorithms
 //! @ingroup algorithms_internal
diff --git a/Core/Instrument/IHistogram.cpp b/Core/Instrument/IHistogram.cpp
index b433d49a5f83521ee2a2d9afab5b9e3ec4564f15..1adf2833718fd6c603d5b6803f0cef4fbd80dd6a 100644
--- a/Core/Instrument/IHistogram.cpp
+++ b/Core/Instrument/IHistogram.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Histogram1D.h"
-#include "Histogram2D.h"
-#include "IntensityDataIOFactory.h"
-#include "Numeric.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Tools/Numeric.h"
 #include <memory>
 
 IHistogram::IHistogram() {}
diff --git a/Core/Instrument/IHistogram.h b/Core/Instrument/IHistogram.h
index 0a523d1f49ea6acae3dd88950a9648dceddbcb8d..89b29e82e3f1c1c9273d27ee29751f38e3a55405 100644
--- a/Core/Instrument/IHistogram.h
+++ b/Core/Instrument/IHistogram.h
@@ -15,9 +15,9 @@
 #ifndef IHISTOGRAM_H
 #define IHISTOGRAM_H
 
-#include "CumulativeValue.h"
-#include "OutputData.h"
-#include "PyObject.h"
+#include "Core/Instrument/CumulativeValue.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Tools/PyObject.h"
 
 class Histogram1D;
 
diff --git a/Core/Instrument/IIntensityFunction.cpp b/Core/Instrument/IIntensityFunction.cpp
index bbcecaaa7a896aea2c5c7a23fb426323ce3b8e2e..3c250fd867c80cad738054fbbf59bd92fe637f31 100644
--- a/Core/Instrument/IIntensityFunction.cpp
+++ b/Core/Instrument/IIntensityFunction.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IIntensityFunction.h"
+#include "Core/Instrument/IIntensityFunction.h"
 #include <cmath>
 #include <limits>
 
diff --git a/Core/Instrument/IIntensityFunction.h b/Core/Instrument/IIntensityFunction.h
index bdc750936409fa6d83365eb04d6ffdf7e02d6181..f8f1853aa35fab62ec123dadcad99ff20f0b1938 100644
--- a/Core/Instrument/IIntensityFunction.h
+++ b/Core/Instrument/IIntensityFunction.h
@@ -16,7 +16,7 @@
 #ifndef IINTENSITYFUNCTION_H
 #define IINTENSITYFUNCTION_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Interface for applying arbitrary function to the measured intensity.
 //! @ingroup algorithms_internal
diff --git a/Core/Instrument/IIntensityNormalizer.cpp b/Core/Instrument/IIntensityNormalizer.cpp
index 25745b6b390973d6a9423cac5248f1000581224e..713fadf4adea36e1b893b09ce863b28561f0d82a 100644
--- a/Core/Instrument/IIntensityNormalizer.cpp
+++ b/Core/Instrument/IIntensityNormalizer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IIntensityNormalizer.h"
+#include "Core/Instrument/IIntensityNormalizer.h"
 
 void IntensityNormalizer::init_parameters()
 {
diff --git a/Core/Instrument/IIntensityNormalizer.h b/Core/Instrument/IIntensityNormalizer.h
index 373311a6bedec92cecc8e56b3a58b4228db85f84..e20a91aa29ec072681efea389ed147778e663bc7 100644
--- a/Core/Instrument/IIntensityNormalizer.h
+++ b/Core/Instrument/IIntensityNormalizer.h
@@ -16,9 +16,9 @@
 #ifndef IINTENSITYNORMALIZER_H
 #define IINTENSITYNORMALIZER_H
 
-#include "ICloneable.h"
-#include "INode.h"
-#include "OutputData.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Instrument/OutputData.h"
 
 //! Interface to OutputData normalizers.
 //! @ingroup algorithms_internal
diff --git a/Core/Instrument/IResolutionFunction2D.h b/Core/Instrument/IResolutionFunction2D.h
index 21b6b4a5b912330da432146a2f8d2cf5b90ef925..313f140f2262aa7ed1db4cbe84192c8a3f1553eb 100644
--- a/Core/Instrument/IResolutionFunction2D.h
+++ b/Core/Instrument/IResolutionFunction2D.h
@@ -15,8 +15,8 @@
 #ifndef IRESOLUTIONFUNCTION2D_H
 #define IRESOLUTIONFUNCTION2D_H
 
-#include "ICloneable.h"
-#include "INode.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
 
 //! Interface providing two-dimensional resolution function.
 //! @ingroup algorithms_internal
diff --git a/Core/Instrument/ISpecularScan.cpp b/Core/Instrument/ISpecularScan.cpp
index 2a8b1962c924fe24aef8bdd0ff3b8051497d47b1..f7f09ee6cf1e36e570381d325d9977f491fc17cb 100644
--- a/Core/Instrument/ISpecularScan.cpp
+++ b/Core/Instrument/ISpecularScan.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ISpecularScan.h"
+#include "Core/Instrument/ISpecularScan.h"
 
 ISpecularScan::ISpecularScan(SPECULAR_DATA_TYPE data_type) : m_data_type(data_type) {}
 
diff --git a/Core/Instrument/ISpecularScan.h b/Core/Instrument/ISpecularScan.h
index 101a730da0ec598959775960160b23843ac03e6b..d707b880bb27af5d266f7473d360fc14813d5d3b 100644
--- a/Core/Instrument/ISpecularScan.h
+++ b/Core/Instrument/ISpecularScan.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARDATAHANDLER_H
 #define SPECULARDATAHANDLER_H
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 
 #include <sstream>
 #include <string>
diff --git a/Core/Instrument/IUnitConverter.cpp b/Core/Instrument/IUnitConverter.cpp
index efee6ae9438c7796f34ca427565810af961b1449..c57f6a4a15a12a67d54b53e36edfc99a4863fcd4 100644
--- a/Core/Instrument/IUnitConverter.cpp
+++ b/Core/Instrument/IUnitConverter.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IUnitConverter.h"
-#include "OutputData.h"
-#include "UnitConverterUtils.h"
+#include "Core/Instrument/IUnitConverter.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/UnitConverterUtils.h"
 
 namespace
 {
diff --git a/Core/Instrument/IUnitConverter.h b/Core/Instrument/IUnitConverter.h
index 8ec46344ec6c1b5863f0df76571f5364d4a8ab87..e5feca573d6d2a92494324bfbb697e04bd8a711f 100644
--- a/Core/Instrument/IUnitConverter.h
+++ b/Core/Instrument/IUnitConverter.h
@@ -15,7 +15,7 @@
 #ifndef IUNITCONVERTER_H
 #define IUNITCONVERTER_H
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 #include <map>
 #include <memory>
 #include <string>
diff --git a/Core/Instrument/Instrument.cpp b/Core/Instrument/Instrument.cpp
index 0f51f9b82ed06779ba02f4131a423504f46f867b..074e6f3845e779364da8ab4af12a8bd2e30d950d 100644
--- a/Core/Instrument/Instrument.cpp
+++ b/Core/Instrument/Instrument.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "Instrument.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "DetectorFunctions.h"
-#include "Histogram2D.h"
-#include "IResolutionFunction2D.h"
-#include "SimulationElement.h"
-#include "SphericalDetector.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Instrument/IResolutionFunction2D.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Instrument/SphericalDetector.h"
 
 Instrument::Instrument() : mP_detector(new SphericalDetector)
 {
diff --git a/Core/Instrument/Instrument.h b/Core/Instrument/Instrument.h
index 30d0e88d9052358e64053c219112a772d3d8d1b2..8661b5287da23fdc6683023a363e279baefa7d0c 100644
--- a/Core/Instrument/Instrument.h
+++ b/Core/Instrument/Instrument.h
@@ -15,9 +15,9 @@
 #ifndef INSTRUMENT_H
 #define INSTRUMENT_H
 
-#include "Beam.h"
-#include "IDetector.h"
-#include "INode.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Instrument/IDetector.h"
+#include "Core/Parametrization/INode.h"
 #include <memory>
 
 template <class T> class OutputData;
diff --git a/Core/Instrument/IntensityDataFunctions.cpp b/Core/Instrument/IntensityDataFunctions.cpp
index 4c794532d74d026a2db0452202e9e23517e2e8cc..e3e0b9f126cde9cf9689437bb31439208b867dc2 100644
--- a/Core/Instrument/IntensityDataFunctions.cpp
+++ b/Core/Instrument/IntensityDataFunctions.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataFunctions.h"
-#include "ArrayUtils.h"
-#include "BornAgainNamespace.h"
-#include "ConvolutionDetectorResolution.h"
-#include "DetectorFunctions.h"
-#include "FourierTransform.h"
-#include "IDetector.h"
-#include "IHistogram.h"
-#include "Instrument.h"
-#include "Numeric.h"
-#include "Simulation.h"
-#include "SimulationResult.h"
-#include "UnitConverterUtils.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Instrument/FourierTransform.h"
+#include "Core/Instrument/IDetector.h"
+#include "Core/Instrument/IHistogram.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Tools/Numeric.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Instrument/SimulationResult.h"
+#include "Core/Instrument/UnitConverterUtils.h"
 #include <math.h>
 
 //! Returns sum of relative differences between each pair of elements:
diff --git a/Core/Instrument/IntensityDataFunctions.h b/Core/Instrument/IntensityDataFunctions.h
index 34a82a9b21cfeec2e1a9cb1a8a072d79122d993d..45e2619f8f7efa0de43febc0b66159eb62ce7e92 100644
--- a/Core/Instrument/IntensityDataFunctions.h
+++ b/Core/Instrument/IntensityDataFunctions.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAFUNCTIONS_H
 #define INTENSITYDATAFUNCTIONS_H
 
-#include "OutputData.h"
+#include "Core/Instrument/OutputData.h"
 #include <memory>
 
 class IHistogram;
diff --git a/Core/Instrument/IsGISAXSDetector.cpp b/Core/Instrument/IsGISAXSDetector.cpp
index a8777c7d0644b71b354ef134b9ba55fcea8e2fe9..ddc74de5a1788d189045ef7cb4fc55ef9ddcdc65 100644
--- a/Core/Instrument/IsGISAXSDetector.cpp
+++ b/Core/Instrument/IsGISAXSDetector.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IsGISAXSDetector.h"
-#include "BornAgainNamespace.h"
-#include "CustomBinAxis.h"
+#include "Core/Instrument/IsGISAXSDetector.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Binning/CustomBinAxis.h"
 
 IsGISAXSDetector::IsGISAXSDetector()
 {
diff --git a/Core/Instrument/IsGISAXSDetector.h b/Core/Instrument/IsGISAXSDetector.h
index ace9a82ea35e209acb61e7cd2f88eef0278d8ad8..67f9b93c36ec0eab489f2673ae81e85af4288cb5 100644
--- a/Core/Instrument/IsGISAXSDetector.h
+++ b/Core/Instrument/IsGISAXSDetector.h
@@ -15,7 +15,7 @@
 #ifndef ISGISAXSDETECTOR_H
 #define ISGISAXSDETECTOR_H
 
-#include "SphericalDetector.h"
+#include "Core/Instrument/SphericalDetector.h"
 
 //! A spherical detector used for validation with IsGISAXS results.
 //! @ingroup detector
diff --git a/Core/Instrument/LLData.cpp b/Core/Instrument/LLData.cpp
index ceb810c64d81630c30ede3491b55ea82bac7e770..7651aca2fed676a28e924270d9d4341173c2d342 100644
--- a/Core/Instrument/LLData.cpp
+++ b/Core/Instrument/LLData.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "LLData.h"
+#include "Core/Instrument/LLData.h"
 
 template <> Eigen::Matrix2d LLData<Eigen::Matrix2d>::getZeroElement() const
 {
diff --git a/Core/Instrument/LLData.h b/Core/Instrument/LLData.h
index dcbd38b98360b465b0d18d8136bfb005d035b462..43a57530f58787c52f56a894fdf48ed11f45b35a 100644
--- a/Core/Instrument/LLData.h
+++ b/Core/Instrument/LLData.h
@@ -15,8 +15,8 @@
 #ifndef LLDATA_H
 #define LLDATA_H
 
-#include "EigenCore.h"
-#include "Exceptions.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Basics/Exceptions.h"
 #include <algorithm>
 #include <limits>
 #include <numeric>
diff --git a/Core/Instrument/OutputData.cpp b/Core/Instrument/OutputData.cpp
index 48aa07dea28bb311f7cb9cb3bd64658b79a4ebb8..72793bd460dcfdcaa733cb9dbfe9de2f5837a4d2 100644
--- a/Core/Instrument/OutputData.cpp
+++ b/Core/Instrument/OutputData.cpp
@@ -14,9 +14,9 @@
 
 #ifdef BORNAGAIN_PYTHON
 
-#include "OutputData.h"
-#include "CumulativeValue.h"
-#include "PythonCore.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/CumulativeValue.h"
+#include "Core/Tools/PythonCore.h"
 
 template <> PyObject* OutputData<double>::getArray() const
 {
diff --git a/Core/Instrument/OutputData.h b/Core/Instrument/OutputData.h
index 3b35786d42369e74c8f880842e4502796b003a49..ab6f4523e462135d1439cc4268acb274af13ec41 100644
--- a/Core/Instrument/OutputData.h
+++ b/Core/Instrument/OutputData.h
@@ -15,12 +15,12 @@
 #ifndef OUTPUTDATA_H
 #define OUTPUTDATA_H
 
-#include "FixedBinAxis.h"
-#include "LLData.h"
-#include "OutputDataIterator.h"
-#include "PyObject.h"
-#include "SafePointerVector.h"
-#include "ThreadInfo.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/LLData.h"
+#include "Core/Instrument/OutputDataIterator.h"
+#include "Core/Tools/PyObject.h"
+#include "Core/Tools/SafePointerVector.h"
+#include "Core/Parametrization/ThreadInfo.h"
 #include <cassert>
 #include <sstream>
 
diff --git a/Core/Instrument/PyArrayImportUtils.cpp b/Core/Instrument/PyArrayImportUtils.cpp
index 22326799c234d2c9600fc0807444c828cd1ded72..e05fd768ed29dca429f3c476ccc5e07957ca1116 100644
--- a/Core/Instrument/PyArrayImportUtils.cpp
+++ b/Core/Instrument/PyArrayImportUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PyArrayImportUtils.h"
-#include "ArrayUtils.h"
+#include "Core/Instrument/PyArrayImportUtils.h"
+#include "Core/Instrument/ArrayUtils.h"
 
 OutputData<double>* PyArrayImport::importArrayToOutputData(const std::vector<double>& vec)
 {
diff --git a/Core/Instrument/PyArrayImportUtils.h b/Core/Instrument/PyArrayImportUtils.h
index f74f8d79381e198b3e6f6da2c785c0978b0070e1..ef52ffe83837a0db800ca18d09224f941d1ff8d6 100644
--- a/Core/Instrument/PyArrayImportUtils.h
+++ b/Core/Instrument/PyArrayImportUtils.h
@@ -15,7 +15,7 @@
 #ifndef PYARRAYIMPORTUTILS_H
 #define PYARRAYIMPORTUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 template <class T> class OutputData;
diff --git a/Core/Instrument/QSpecScan.cpp b/Core/Instrument/QSpecScan.cpp
index 37b95f1f5c28d68664f097ca6c9ad4e7b43160ee..d5dea0c81cf1331d099e809fa04d521d1c99c393 100644
--- a/Core/Instrument/QSpecScan.cpp
+++ b/Core/Instrument/QSpecScan.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "QSpecScan.h"
-#include "BornAgainNamespace.h"
-#include "FixedBinAxis.h"
-#include "ParameterSample.h"
-#include "PointwiseAxis.h"
-#include "PythonFormatting.h"
-#include "RangedDistributions.h"
-#include "RealLimits.h"
-#include "ScanResolution.h"
-#include "SpecularSimulationElement.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
 
 namespace
 {
diff --git a/Core/Instrument/QSpecScan.h b/Core/Instrument/QSpecScan.h
index e3afe763fb8990614d87e57c4a701af9617122ef..dfea8059ab314e728421269f5442d2625c5cce8a 100644
--- a/Core/Instrument/QSpecScan.h
+++ b/Core/Instrument/QSpecScan.h
@@ -15,7 +15,7 @@
 #ifndef QSPECSCAN_H
 #define QSPECSCAN_H
 
-#include "ISpecularScan.h"
+#include "Core/Instrument/ISpecularScan.h"
 #include <memory>
 
 class ParameterSample;
diff --git a/Core/Instrument/RectangularDetector.cpp b/Core/Instrument/RectangularDetector.cpp
index 9398a009a576f1517fc1636ac6208e3247f5d9c8..b5fec37b2c00d6739c84ef980bb336426693500e 100644
--- a/Core/Instrument/RectangularDetector.cpp
+++ b/Core/Instrument/RectangularDetector.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "RectangularDetector.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "IDetectorResolution.h"
-#include "MathConstants.h"
-#include "RegionOfInterest.h"
-#include "SimulationElement.h"
-#include "Units.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/IDetectorResolution.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Parametrization/Units.h"
 
 RectangularDetector::RectangularDetector(size_t nxbins, double width, size_t nybins, double height)
     : m_u0(0.0), m_v0(0.0), m_direction(kvector_t(0.0, -1.0, 0.0)), m_distance(0.0),
diff --git a/Core/Instrument/RectangularDetector.h b/Core/Instrument/RectangularDetector.h
index f6fb098c6fbfee1b7d51f52afeedeb97ea3addf3..3ccd8cc87830b908e1a357262fb841738b551c50 100644
--- a/Core/Instrument/RectangularDetector.h
+++ b/Core/Instrument/RectangularDetector.h
@@ -15,8 +15,8 @@
 #ifndef RECTANGULARDETECTOR_H
 #define RECTANGULARDETECTOR_H
 
-#include "IDetector2D.h"
-#include "IPixel.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Binning/IPixel.h"
 
 //! A pixel in a RectangularDetector.
 
diff --git a/Core/Instrument/RegionOfInterest.cpp b/Core/Instrument/RegionOfInterest.cpp
index 62c4c505dff7a954d4a7c70c0a1484e9f0b666fb..ec0e8452c7fc8c1fa519d9db255ce7cb8fdc6d20 100644
--- a/Core/Instrument/RegionOfInterest.cpp
+++ b/Core/Instrument/RegionOfInterest.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "RegionOfInterest.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "IDetector2D.h"
-#include "Rectangle.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Mask/Rectangle.h"
 
 RegionOfInterest::RegionOfInterest(const IDetector2D& detector, double xlow, double ylow,
                                    double xup, double yup)
diff --git a/Core/Instrument/RegionOfInterest.h b/Core/Instrument/RegionOfInterest.h
index 096d6c62f0a40e76d699342484d6e57731b43793..e4ff77ae21065d794fc7b4daf1f7f46e00815e66 100644
--- a/Core/Instrument/RegionOfInterest.h
+++ b/Core/Instrument/RegionOfInterest.h
@@ -15,7 +15,7 @@
 #ifndef REGIONOFINTEREST_H
 #define REGIONOFINTEREST_H
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Instrument/ResolutionFunction2DGaussian.cpp b/Core/Instrument/ResolutionFunction2DGaussian.cpp
index 4da7aa3309a23efacb973f92cb08e647d37d2657..ff31d9d7c9730e72f036fc6199a0ca8413958b1b 100644
--- a/Core/Instrument/ResolutionFunction2DGaussian.cpp
+++ b/Core/Instrument/ResolutionFunction2DGaussian.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ResolutionFunction2DGaussian.h"
-#include "BornAgainNamespace.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
 
 ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(double sigma_x, double sigma_y)
     : m_sigma_x(sigma_x), m_sigma_y(sigma_y)
diff --git a/Core/Instrument/ResolutionFunction2DGaussian.h b/Core/Instrument/ResolutionFunction2DGaussian.h
index ba9e92f343a71653a599b089be87ec4a7980cd4f..dbfc408c4dea8cb54b381c43a889af9a8a7c044e 100644
--- a/Core/Instrument/ResolutionFunction2DGaussian.h
+++ b/Core/Instrument/ResolutionFunction2DGaussian.h
@@ -15,7 +15,7 @@
 #ifndef RESOLUTIONFUNCTION2DGAUSSIAN_H
 #define RESOLUTIONFUNCTION2DGAUSSIAN_H
 
-#include "IResolutionFunction2D.h"
+#include "Core/Instrument/IResolutionFunction2D.h"
 
 //! Simple gaussian two-dimensional resolution function.
 //! @ingroup algorithms_internal
diff --git a/Core/Instrument/ScanResolution.cpp b/Core/Instrument/ScanResolution.cpp
index b89991956d2382683486fcddee09be9b7b5f2154..23c38ba689addaa4d007f180b050a18bc67e0cc1 100644
--- a/Core/Instrument/ScanResolution.cpp
+++ b/Core/Instrument/ScanResolution.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ScanResolution.h"
-#include "PythonFormatting.h"
-#include "RangedDistributions.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Parametrization/RangedDistributions.h"
 
 namespace
 {
diff --git a/Core/Instrument/ScanResolution.h b/Core/Instrument/ScanResolution.h
index ed27e21790bc3c6e677f2fa2f0a22fff079e0b2e..1599dda1fa9fa427eb5a9f1f066909cf781b23cc 100644
--- a/Core/Instrument/ScanResolution.h
+++ b/Core/Instrument/ScanResolution.h
@@ -15,8 +15,8 @@
 #ifndef SCANRESOLUTIONS_H
 #define SCANRESOLUTIONS_H
 
-#include "ICloneable.h"
-#include "ParameterSample.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/ParameterSample.h"
 #include <memory>
 #include <string>
 #include <vector>
diff --git a/Core/Instrument/SimpleUnitConverters.cpp b/Core/Instrument/SimpleUnitConverters.cpp
index 6feeeac1ecf6f80dd0cfb7ba8f0d407c444a24f8..e362ce5ec159b45ce9fedca78b4f8eea467748ee 100644
--- a/Core/Instrument/SimpleUnitConverters.cpp
+++ b/Core/Instrument/SimpleUnitConverters.cpp
@@ -16,16 +16,16 @@
 #include <cmath>
 #include <stdexcept>
 
-#include "AxisNames.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "RectangularDetector.h"
-#include "RegionOfInterest.h"
-#include "SimpleUnitConverters.h"
-#include "SphericalDetector.h"
-#include "UnitConverterUtils.h"
-#include "Units.h"
+#include "Core/Instrument/AxisNames.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Instrument/UnitConverterUtils.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/Core/Instrument/SimpleUnitConverters.h b/Core/Instrument/SimpleUnitConverters.h
index 267bc6a28c178c3ed882fc985b5a498174b5a63d..525ca1bd7b26b7240a6d9609c19d8abbaa6c2b44 100644
--- a/Core/Instrument/SimpleUnitConverters.h
+++ b/Core/Instrument/SimpleUnitConverters.h
@@ -15,8 +15,8 @@
 #ifndef SIMPLEUNITCONVERTERS_H
 #define SIMPLEUNITCONVERTERS_H
 
-#include "IUnitConverter.h"
-#include "Vectors3D.h"
+#include "Core/Instrument/IUnitConverter.h"
+#include "Core/Vector/Vectors3D.h"
 
 class Beam;
 class IDetector;
diff --git a/Core/Instrument/SimulationArea.cpp b/Core/Instrument/SimulationArea.cpp
index 2b08614ec8546dc5a95f2082a424ac8d5ccb5d75..9023440f8bb996124e1671aa0c2718c92085ebd2 100644
--- a/Core/Instrument/SimulationArea.cpp
+++ b/Core/Instrument/SimulationArea.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "SimulationArea.h"
-#include "BornAgainNamespace.h"
-#include "DetectorMask.h"
-#include "Exceptions.h"
-#include "IDetector.h"
-#include "IntensityDataFunctions.h"
-#include "Rectangle.h"
-#include "RegionOfInterest.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/DetectorMask.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Instrument/IDetector.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RegionOfInterest.h"
 #include <sstream>
 
 SimulationArea::SimulationArea(const IDetector* detector) : m_detector(detector), m_max_index(0)
diff --git a/Core/Instrument/SimulationArea.h b/Core/Instrument/SimulationArea.h
index 161e3d9b5c561c6620a84e44172a392056c14ca8..7e40a256de3b6b74a2c53a830979858fb711605e 100644
--- a/Core/Instrument/SimulationArea.h
+++ b/Core/Instrument/SimulationArea.h
@@ -15,8 +15,8 @@
 #ifndef SIMULATIONAREA_H
 #define SIMULATIONAREA_H
 
-#include "SimulationAreaIterator.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/SimulationAreaIterator.h"
+#include "Wrap/WinDllMacros.h"
 
 class IDetector;
 
diff --git a/Core/Instrument/SimulationAreaIterator.cpp b/Core/Instrument/SimulationAreaIterator.cpp
index 61ddb0c001d90ae13a8a055f53bad22cee440025..f3f9ba56e0ef00ba98ee6314f9ad769730405f07 100644
--- a/Core/Instrument/SimulationAreaIterator.cpp
+++ b/Core/Instrument/SimulationAreaIterator.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SimulationAreaIterator.h"
-#include "IDetector2D.h"
-#include "SimulationArea.h"
+#include "Core/Instrument/SimulationAreaIterator.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Instrument/SimulationArea.h"
 
 SimulationAreaIterator::SimulationAreaIterator(const SimulationArea* area, size_t start_at_index)
     : m_area(area), m_index(start_at_index), m_element_index(0)
diff --git a/Core/Instrument/SimulationAreaIterator.h b/Core/Instrument/SimulationAreaIterator.h
index 7ccc9a34f82354ca5c6247dd7b85b174724c3a9f..83659a43537a3ad306512f4309543320190e5194 100644
--- a/Core/Instrument/SimulationAreaIterator.h
+++ b/Core/Instrument/SimulationAreaIterator.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONAREAITERATOR_H
 #define SIMULATIONAREAITERATOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <cstdlib>
 class SimulationArea;
 
diff --git a/Core/Instrument/SimulationResult.cpp b/Core/Instrument/SimulationResult.cpp
index 42d52917c427ad940a708cd32ab9e7302dd3c5b3..6cffaad52cf6f77f7f478cc08a5f7409ccd98c70 100644
--- a/Core/Instrument/SimulationResult.cpp
+++ b/Core/Instrument/SimulationResult.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SimulationResult.h"
-#include "FixedBinAxis.h"
-#include "Histogram2D.h"
-#include "OutputData.h"
+#include "Core/Instrument/SimulationResult.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Instrument/OutputData.h"
 
 SimulationResult::SimulationResult(const OutputData<double>& data,
                                    const IUnitConverter& unit_converter)
diff --git a/Core/Instrument/SimulationResult.h b/Core/Instrument/SimulationResult.h
index 9916cc1b26a3a7d20c29b873f413ee10549f3a17..dc8c1737e8c35615dcc956b4a542b1ff4cce0c63 100644
--- a/Core/Instrument/SimulationResult.h
+++ b/Core/Instrument/SimulationResult.h
@@ -15,9 +15,9 @@
 #ifndef SIMULATIONRESULT_H
 #define SIMULATIONRESULT_H
 
-#include "IUnitConverter.h"
-#include "PyObject.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/IUnitConverter.h"
+#include "Core/Tools/PyObject.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Instrument/SpecularDetector1D.cpp b/Core/Instrument/SpecularDetector1D.cpp
index 61c6f95ff0bc3ab197099f8255d9a9eac7ae8439..0655530df6fcd2a406bea6b9b4e2b6feaafdcd38 100644
--- a/Core/Instrument/SpecularDetector1D.cpp
+++ b/Core/Instrument/SpecularDetector1D.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SpecularDetector1D.h"
+#include "Core/Instrument/SpecularDetector1D.h"
 
 SpecularDetector1D::SpecularDetector1D(const IAxis& axis)
 {
diff --git a/Core/Instrument/SpecularDetector1D.h b/Core/Instrument/SpecularDetector1D.h
index 517d71b805c9c6e450ce5a049b3bce69921a3d19..7737c08467d4604682b721392442ce52fd770ccb 100644
--- a/Core/Instrument/SpecularDetector1D.h
+++ b/Core/Instrument/SpecularDetector1D.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARDETECTOR1D_H_
 #define SPECULARDETECTOR1D_H_
 
-#include "IDetector.h"
+#include "Core/Instrument/IDetector.h"
 
 class SpecularSimulationElement;
 
diff --git a/Core/Instrument/SphericalDetector.cpp b/Core/Instrument/SphericalDetector.cpp
index b9b2c088964a7503a0ad0ef6a901b95856093f2a..a90404f762c681cd3072022199b30a4b08fbbf71 100644
--- a/Core/Instrument/SphericalDetector.cpp
+++ b/Core/Instrument/SphericalDetector.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "SphericalDetector.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "IDetectorResolution.h"
-#include "IPixel.h"
-#include "MathConstants.h"
-#include "SimulationElement.h"
-#include "Units.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/IDetectorResolution.h"
+#include "Core/Binning/IPixel.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Parametrization/Units.h"
 
 SphericalDetector::SphericalDetector()
 {
diff --git a/Core/Instrument/SphericalDetector.h b/Core/Instrument/SphericalDetector.h
index e999d1b720a98a6bcd8ef07b97fc6eaa61c7e265..4a2e4bb0113650e854cfc2cba93fe6d88eab6375 100644
--- a/Core/Instrument/SphericalDetector.h
+++ b/Core/Instrument/SphericalDetector.h
@@ -15,8 +15,8 @@
 #ifndef SPHERICALDETECTOR_H
 #define SPHERICALDETECTOR_H
 
-#include "IDetector2D.h"
-#include "IPixel.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Binning/IPixel.h"
 
 //! A pixel in a SphericalDetector
 
diff --git a/Core/Instrument/UnitConverter1D.cpp b/Core/Instrument/UnitConverter1D.cpp
index 3d58bc8a26b1411acf8e3b6e471ea1acc758cf59..a656336fc9b993e79c22795510cf7f8f1f239584 100644
--- a/Core/Instrument/UnitConverter1D.cpp
+++ b/Core/Instrument/UnitConverter1D.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "UnitConverter1D.h"
-#include "AngularSpecScan.h"
-#include "AxisNames.h"
-#include "Beam.h"
-#include "FixedBinAxis.h"
-#include "MathConstants.h"
-#include "OutputData.h"
-#include "PointwiseAxis.h"
-#include "QSpecScan.h"
-#include "UnitConverterUtils.h"
-#include "Units.h"
+#include "Core/Instrument/UnitConverter1D.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Instrument/AxisNames.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Instrument/UnitConverterUtils.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/Core/Instrument/UnitConverter1D.h b/Core/Instrument/UnitConverter1D.h
index c0a58eaa27ae1d7c3ab4f5f38e63220b543320d2..6d16ed8aa8b2f39888d94fab786574b39346bda7 100644
--- a/Core/Instrument/UnitConverter1D.h
+++ b/Core/Instrument/UnitConverter1D.h
@@ -15,7 +15,7 @@
 #ifndef UNITCONVERTER1D_H
 #define UNITCONVERTER1D_H
 
-#include "IUnitConverter.h"
+#include "Core/Instrument/IUnitConverter.h"
 
 #include <functional>
 
diff --git a/Core/Instrument/UnitConverterUtils.cpp b/Core/Instrument/UnitConverterUtils.cpp
index 323f6ab847e2415282b8ba338171c1fe79b057e8..d1f3681f68ed5938926fff2cfad224c4ad802891 100644
--- a/Core/Instrument/UnitConverterUtils.cpp
+++ b/Core/Instrument/UnitConverterUtils.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "UnitConverterUtils.h"
-#include "DepthProbeSimulation.h"
-#include "GISASSimulation.h"
-#include "Instrument.h"
-#include "OffSpecSimulation.h"
-#include "OutputData.h"
-#include "RectangularDetector.h"
-#include "SimpleUnitConverters.h"
-#include "SpecularSimulation.h"
-#include "SphericalDetector.h"
-#include "UnitConverter1D.h"
+#include "Core/Instrument/UnitConverterUtils.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Instrument/UnitConverter1D.h"
 
 std::unique_ptr<OutputData<double>>
 UnitConverterUtils::createOutputData(const IUnitConverter& converter, AxesUnits units)
diff --git a/Core/Instrument/UnitConverterUtils.h b/Core/Instrument/UnitConverterUtils.h
index 0770fde04f8a320776b30a29b2fb72599d561f6e..5fe669017163ba48238bf683657b99a4380beca7 100644
--- a/Core/Instrument/UnitConverterUtils.h
+++ b/Core/Instrument/UnitConverterUtils.h
@@ -15,7 +15,7 @@
 #ifndef UNITCONVERTERUTILS_H
 #define UNITCONVERTERUTILS_H
 
-#include "IUnitConverter.h"
+#include "Core/Instrument/IUnitConverter.h"
 
 class Instrument;
 class Simulation;
diff --git a/Core/Instrument/VarianceFunctions.cpp b/Core/Instrument/VarianceFunctions.cpp
index cf68e5cbf931a6754b0a4d6308cf5bab4380b5be..de94e9b320baef5eade24842b00d13fa6e806cd7 100644
--- a/Core/Instrument/VarianceFunctions.cpp
+++ b/Core/Instrument/VarianceFunctions.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "VarianceFunctions.h"
+#include "Core/Instrument/VarianceFunctions.h"
 #include <algorithm>
 
 IVarianceFunction::IVarianceFunction() = default;
diff --git a/Core/Instrument/VarianceFunctions.h b/Core/Instrument/VarianceFunctions.h
index cf28128ea351e50e9c88f8430620b0354a7fa49e..3aa1212155df66e5b03f17340b44d4bf8b4693a6 100644
--- a/Core/Instrument/VarianceFunctions.h
+++ b/Core/Instrument/VarianceFunctions.h
@@ -15,7 +15,7 @@
 #ifndef VARIANCEFUNCTIONS_H
 #define VARIANCEFUNCTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Variance function interface.
 //! @ingroup fitting_internal
diff --git a/Core/Lattice/ILatticeOrientation.cpp b/Core/Lattice/ILatticeOrientation.cpp
index 92ed62cd3f106542736f93b3acb3668960b16c5d..8ce8d3fc05c8be95511f4df3b39ad02fc0285c4a 100644
--- a/Core/Lattice/ILatticeOrientation.cpp
+++ b/Core/Lattice/ILatticeOrientation.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ILatticeOrientation.h"
-#include "EigenCore.h"
+#include "Core/Lattice/ILatticeOrientation.h"
+#include "Core/Vector/EigenCore.h"
 
 namespace
 {
diff --git a/Core/Lattice/ILatticeOrientation.h b/Core/Lattice/ILatticeOrientation.h
index 2c3d251a69010ba1df912395dfd833090b710481..7009f8a24ca1e31df1517da7f447213baf3bd0ac 100644
--- a/Core/Lattice/ILatticeOrientation.h
+++ b/Core/Lattice/ILatticeOrientation.h
@@ -15,8 +15,8 @@
 #ifndef ILATTICEORIENTATION_H
 #define ILATTICEORIENTATION_H
 
-#include "Lattice.h"
-#include "Transform3D.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Vector/Transform3D.h"
 
 class BA_CORE_API_ ILatticeOrientation
 {
diff --git a/Core/Lattice/ISelectionRule.h b/Core/Lattice/ISelectionRule.h
index 8add12f5df24d10c51e19097376d87c8647d6257..da879ab0e92e74c0a5242157cc83cc8370020fe0 100644
--- a/Core/Lattice/ISelectionRule.h
+++ b/Core/Lattice/ISelectionRule.h
@@ -15,7 +15,7 @@
 #ifndef ISELECTIONRULE_H
 #define ISELECTIONRULE_H
 
-#include "Vectors3D.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! Pure virtual base class for selection rules.
 //! @ingroup samples_internal
diff --git a/Core/Lattice/Lattice.cpp b/Core/Lattice/Lattice.cpp
index fd184efefd70caefc07ad0f70fe8bceebda95489..0696116aed50d7234966861a6e690fafec0a2ec1 100644
--- a/Core/Lattice/Lattice.cpp
+++ b/Core/Lattice/Lattice.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "Lattice.h"
-#include "BornAgainNamespace.h"
-#include "ISelectionRule.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
-#include "Transform3D.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Lattice/ISelectionRule.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Vector/Transform3D.h"
 #include <gsl/gsl_linalg.h>
 
 Lattice::Lattice()
diff --git a/Core/Lattice/Lattice.h b/Core/Lattice/Lattice.h
index 894da9cd72f3a624822870bbb4133fb78f747354..a36ba63a6d743e53f48517b86b492b8f90d90540 100644
--- a/Core/Lattice/Lattice.h
+++ b/Core/Lattice/Lattice.h
@@ -15,8 +15,8 @@
 #ifndef LATTICE_H
 #define LATTICE_H
 
-#include "INode.h"
-#include "Vectors3D.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Vector/Vectors3D.h"
 #include <vector>
 
 class ISelectionRule;
diff --git a/Core/Lattice/Lattice1DParameters.h b/Core/Lattice/Lattice1DParameters.h
index 7990644e6b58dc6c54e23303cf23a717f9b5ee00..7743c6e6060487d2fe2542a2a26e61c13f619b07 100644
--- a/Core/Lattice/Lattice1DParameters.h
+++ b/Core/Lattice/Lattice1DParameters.h
@@ -15,7 +15,7 @@
 #ifndef LATTICE1DPARAMETERS_H
 #define LATTICE1DPARAMETERS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Basic parameters of a one-dimensional lattice.
 //! @ingroup samples
diff --git a/Core/Lattice/Lattice2D.cpp b/Core/Lattice/Lattice2D.cpp
index 380053a5b1e09e74cbf26ef4effca04aad700533..4c2ac256e707c24ff058cedb9ba9914ff898b9c4 100644
--- a/Core/Lattice/Lattice2D.cpp
+++ b/Core/Lattice/Lattice2D.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Lattice2D.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <cmath>
 
 Lattice2D::Lattice2D(double rotation_angle) : m_xi(rotation_angle) {}
diff --git a/Core/Lattice/Lattice2D.h b/Core/Lattice/Lattice2D.h
index 11d918f3636856aad936716adfe28a66daa361e8..3004f2d8f6fcf512bd1a91ea2d017f2f9d281429 100644
--- a/Core/Lattice/Lattice2D.h
+++ b/Core/Lattice/Lattice2D.h
@@ -15,8 +15,8 @@
 #ifndef LATTICE2D_H
 #define LATTICE2D_H
 
-#include "ICloneable.h"
-#include "INode.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
 
 class BA_CORE_API_ Lattice2D : public ICloneable, public INode
 {
diff --git a/Core/Lattice/LatticeUtils.cpp b/Core/Lattice/LatticeUtils.cpp
index 5b5d8c309226ecebb4330a68ca7d1fc5004fd1ff..6b8670513db75c03a2e7f1e19d9799fed3112ef4 100644
--- a/Core/Lattice/LatticeUtils.cpp
+++ b/Core/Lattice/LatticeUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "LatticeUtils.h"
-#include "ILatticeOrientation.h"
+#include "Core/Lattice/LatticeUtils.h"
+#include "Core/Lattice/ILatticeOrientation.h"
 
 Lattice LatticeUtils::CreateFCCLattice(double lattice_constant,
                                        const ILatticeOrientation& orientation)
diff --git a/Core/Lattice/LatticeUtils.h b/Core/Lattice/LatticeUtils.h
index 58aad22ee9b591763569240af2ff953c7aa2f78b..0e6c774d38ffec53a0ad59697f3a249f9e2a10a3 100644
--- a/Core/Lattice/LatticeUtils.h
+++ b/Core/Lattice/LatticeUtils.h
@@ -15,8 +15,8 @@
 #ifndef LATTICEUTILS_H
 #define LATTICEUTILS_H
 
-#include "Lattice.h"
-#include "Vectors3D.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Vector/Vectors3D.h"
 
 class ILatticeOrientation;
 
diff --git a/Core/Mask/Ellipse.cpp b/Core/Mask/Ellipse.cpp
index e95968e0376eb6952bc7337f948fa1213b653c04..6a9ea991bb7f74598197e5445cc79e38f7ee512b 100644
--- a/Core/Mask/Ellipse.cpp
+++ b/Core/Mask/Ellipse.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Ellipse.h"
-#include "Bin.h"
-#include "Exceptions.h"
+#include "Core/Mask/Ellipse.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Basics/Exceptions.h"
 
 //! @param xcenter x-coordinate of Ellipse's center
 //! @param ycenter y-coordinate of Ellipse's center
diff --git a/Core/Mask/Ellipse.h b/Core/Mask/Ellipse.h
index 48b32c223df31f4d81fb8cfc07e22a3bd633d582..ae6f5fd5aba6a9926cfe7ea7ea860fff78245ae6 100644
--- a/Core/Mask/Ellipse.h
+++ b/Core/Mask/Ellipse.h
@@ -15,7 +15,7 @@
 #ifndef ELLIPSE_H
 #define ELLIPSE_H
 
-#include "IShape2D.h"
+#include "Core/Mask/IShape2D.h"
 
 //! Ellipse shape.
 //! @ingroup tools
diff --git a/Core/Mask/IShape2D.h b/Core/Mask/IShape2D.h
index 9aa8f3af152b1ab4ac7863317484735bcf98abef..6ee3952b5648897c37c8aa61d00ce37445f6cf01 100644
--- a/Core/Mask/IShape2D.h
+++ b/Core/Mask/IShape2D.h
@@ -15,8 +15,8 @@
 #ifndef ISHAPE2D_H
 #define ISHAPE2D_H
 
-#include "ICloneable.h"
-#include "INamed.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Basics/INamed.h"
 #include <iostream>
 
 struct Bin1D;
diff --git a/Core/Mask/InfinitePlane.h b/Core/Mask/InfinitePlane.h
index e7c052e5eecfbd454e45e8cd56780385017761fc..8c87652d94727988dfc95012293a6d12a109e948 100644
--- a/Core/Mask/InfinitePlane.h
+++ b/Core/Mask/InfinitePlane.h
@@ -15,7 +15,7 @@
 #ifndef INFINITEPLANE_H
 #define INFINITEPLANE_H
 
-#include "IShape2D.h"
+#include "Core/Mask/IShape2D.h"
 
 //! The infinite plane is used for masking everything once and forever.
 //! @ingroup tools
diff --git a/Core/Mask/Line.cpp b/Core/Mask/Line.cpp
index f870d48fdcf0924f8cddba823620b8437635dee3..6cfd4b06e56aaff9f066a41bf801719348a6972d 100644
--- a/Core/Mask/Line.cpp
+++ b/Core/Mask/Line.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Line.h"
-#include "Bin.h"
-#include "Numeric.h"
+#include "Core/Mask/Line.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Tools/Numeric.h"
 
 #include <limits>
 #include <boost/geometry.hpp>
diff --git a/Core/Mask/Line.h b/Core/Mask/Line.h
index 32dbc7e4c40b8d9fb563b8ba05fd481694a3a9dd..054c96c08cc863c4022eb9aac1cd98ac23da57e7 100644
--- a/Core/Mask/Line.h
+++ b/Core/Mask/Line.h
@@ -15,7 +15,7 @@
 #ifndef LINE_H
 #define LINE_H
 
-#include "IShape2D.h"
+#include "Core/Mask/IShape2D.h"
 
 //! A line segment.
 //! @ingroup mask
diff --git a/Core/Mask/Polygon.cpp b/Core/Mask/Polygon.cpp
index bb9eb2c5aed95079adcbeb6f07e1ffaaf2a0ffee..0019f1bdc89bf0182fb2999e33707f74ad9879ef 100644
--- a/Core/Mask/Polygon.cpp
+++ b/Core/Mask/Polygon.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Polygon.h"
-#include "Bin.h"
-#include "Exceptions.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Basics/Exceptions.h"
 
 #include <boost/geometry.hpp>
 #include <boost/geometry/geometries/point_xy.hpp>
diff --git a/Core/Mask/Polygon.h b/Core/Mask/Polygon.h
index c5376c6922b7f25f30f733b253403f54d11deb7a..ebe52e4ad1e640b103ae4d083c497299621d65e8 100644
--- a/Core/Mask/Polygon.h
+++ b/Core/Mask/Polygon.h
@@ -15,7 +15,7 @@
 #ifndef POLYGON_H
 #define POLYGON_H
 
-#include "IShape2D.h"
+#include "Core/Mask/IShape2D.h"
 #include <vector>
 
 class PolygonPrivate;
diff --git a/Core/Mask/Rectangle.cpp b/Core/Mask/Rectangle.cpp
index 42be8c8dc53b5b3e99c5a23a99fe35e3d5c828a5..c3b65ba349c7e4c87d8b53f5677d957d3df884ea 100644
--- a/Core/Mask/Rectangle.cpp
+++ b/Core/Mask/Rectangle.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Rectangle.h"
-#include "Bin.h"
-#include "Exceptions.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Basics/Exceptions.h"
 
 //! @param xlow x-coordinate of lower left corner
 //! @param ylow y-coordinate of lower left corner
diff --git a/Core/Mask/Rectangle.h b/Core/Mask/Rectangle.h
index 13b323aec08214dc2a5f357d2f865b230aa61c4b..2f51b65b619e189107326ba215616236abbd5714 100644
--- a/Core/Mask/Rectangle.h
+++ b/Core/Mask/Rectangle.h
@@ -15,7 +15,7 @@
 #ifndef RECTANGLE_H
 #define RECTANGLE_H
 
-#include "IShape2D.h"
+#include "Core/Mask/IShape2D.h"
 
 //! The rectangle shape having its axis aligned to the (non-rotated) coordinate system.
 //! @ingroup mask
diff --git a/Core/Material/BaseMaterialImpl.h b/Core/Material/BaseMaterialImpl.h
index 2e7f7b02981cd1a2cd41d5a4d54dbf9b3e71010a..908ff686f6fb07cc7912a2be9bb7948d772c5ecc 100644
--- a/Core/Material/BaseMaterialImpl.h
+++ b/Core/Material/BaseMaterialImpl.h
@@ -15,10 +15,10 @@
 #ifndef BASEMATERIALIMPL_H_
 #define BASEMATERIALIMPL_H_
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "INamed.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Basics/INamed.h"
+#include "Core/Vector/Vectors3D.h"
 
 class Transform3D;
 class WavevectorInfo;
diff --git a/Core/Material/MagneticMaterialImpl.cpp b/Core/Material/MagneticMaterialImpl.cpp
index 2372292edb399a3c68f74e16548663f6df304cf0..afef6a7b5689795de95ec383d8d55fdcc8f8f968 100644
--- a/Core/Material/MagneticMaterialImpl.cpp
+++ b/Core/Material/MagneticMaterialImpl.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MagneticMaterialImpl.h"
-#include "MaterialUtils.h"
-#include "PhysicalConstants.h"
-#include "Transform3D.h"
-#include "WavevectorInfo.h"
+#include "Core/Material/MagneticMaterialImpl.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Basics/PhysicalConstants.h"
+#include "Core/Vector/Transform3D.h"
+#include "Core/Vector/WavevectorInfo.h"
 #include <memory>
 
 using PhysConsts::gamma_n;
diff --git a/Core/Material/MagneticMaterialImpl.h b/Core/Material/MagneticMaterialImpl.h
index 818c71950c41017bbddc14121fb23e321fbc80c8..d0612bc041cee89dc50c11d667a186d4ee7fca54 100644
--- a/Core/Material/MagneticMaterialImpl.h
+++ b/Core/Material/MagneticMaterialImpl.h
@@ -15,10 +15,10 @@
 #ifndef MAGNETICMATERIALIMPL_H_
 #define MAGNETICMATERIALIMPL_H_
 
-#include "BaseMaterialImpl.h"
-#include "Complex.h"
-#include "EigenCore.h"
-#include "Vectors3D.h"
+#include "Core/Material/BaseMaterialImpl.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Vector/Vectors3D.h"
 
 class Transform3D;
 class WavevectorInfo;
diff --git a/Core/Material/Material.cpp b/Core/Material/Material.cpp
index 4d851391c21e5fc7ad71c95be765cd24f8f22e35..2a604083bc49670c87a8b9169b5decac7abb254b 100644
--- a/Core/Material/Material.cpp
+++ b/Core/Material/Material.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Material.h"
-#include "BaseMaterialImpl.h"
-#include "Exceptions.h"
-#include "Transform3D.h"
-#include "WavevectorInfo.h"
+#include "Core/Material/Material.h"
+#include "Core/Material/BaseMaterialImpl.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Vector/Transform3D.h"
+#include "Core/Vector/WavevectorInfo.h"
 #include <typeinfo>
 
 Material::Material(const Material& material)
diff --git a/Core/Material/Material.h b/Core/Material/Material.h
index 77595f19c7ef6d325421c5c46d132013d75af578..3c3ca2912a3d4be5ca4403b3fc0290b9608965e7 100644
--- a/Core/Material/Material.h
+++ b/Core/Material/Material.h
@@ -15,10 +15,10 @@
 #ifndef MATERIAL_H_
 #define MATERIAL_H_
 
-#include "BaseMaterialImpl.h"
-#include "Complex.h"
-#include "EigenCore.h"
-#include "Vectors3D.h"
+#include "Core/Material/BaseMaterialImpl.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Material/MaterialBySLDImpl.cpp b/Core/Material/MaterialBySLDImpl.cpp
index 01ffeacc5bdc644222cae161195fac2812593a40..6482b5da882080cdd29d94e239d23bd4aa67d22f 100644
--- a/Core/Material/MaterialBySLDImpl.cpp
+++ b/Core/Material/MaterialBySLDImpl.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MaterialBySLDImpl.h"
-#include "Units.h"
-#include "WavevectorInfo.h"
+#include "Core/Material/MaterialBySLDImpl.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 namespace
 {
diff --git a/Core/Material/MaterialBySLDImpl.h b/Core/Material/MaterialBySLDImpl.h
index b92c56a362cea9ba6e615f441fcb3d35d8d1ad09..618fb551ec8593178e12333b37d1e1a5221cadb8 100644
--- a/Core/Material/MaterialBySLDImpl.h
+++ b/Core/Material/MaterialBySLDImpl.h
@@ -15,9 +15,9 @@
 #ifndef MATERIALBYSLDIMPL_H_
 #define MATERIALBYSLDIMPL_H_
 
-#include "MagneticMaterialImpl.h"
-#include "Material.h"
-#include "MaterialFactoryFuncs.h"
+#include "Core/Material/MagneticMaterialImpl.h"
+#include "Core/Material/Material.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
 
 //! Material implementation based on wavelength-independent data (valid for a range of wavelengths)
 //! @ingroup materials
diff --git a/Core/Material/MaterialFactoryFuncs.cpp b/Core/Material/MaterialFactoryFuncs.cpp
index 23691c114fff206c7c12185471d46c522d508b3b..f353238ab3087ee087cd24dbd9dbccbfe3d8ca2c 100644
--- a/Core/Material/MaterialFactoryFuncs.cpp
+++ b/Core/Material/MaterialFactoryFuncs.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "MaterialFactoryFuncs.h"
-#include "HomogeneousRegion.h"
-#include "MaterialBySLDImpl.h"
-#include "MaterialUtils.h"
-#include "RefractiveMaterialImpl.h"
-#include "Units.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Particle/HomogeneousRegion.h"
+#include "Core/Material/MaterialBySLDImpl.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Material/RefractiveMaterialImpl.h"
+#include "Core/Parametrization/Units.h"
 #include <functional>
 
 namespace
diff --git a/Core/Material/MaterialFactoryFuncs.h b/Core/Material/MaterialFactoryFuncs.h
index 9d102195e63023af675c86460a6d606c8ee7faa0..0817827ebdb8b2360bbd8a4dd4dca43d8d861ab4 100644
--- a/Core/Material/MaterialFactoryFuncs.h
+++ b/Core/Material/MaterialFactoryFuncs.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALFACTORYFUNCS_H_
 #define MATERIALFACTORYFUNCS_H_
 
-#include "Material.h"
+#include "Core/Material/Material.h"
 
 struct HomogeneousRegion;
 
diff --git a/Core/Material/MaterialUtils.cpp b/Core/Material/MaterialUtils.cpp
index be44b4322424a87ce26d6801337afdc124a7a7cc..4e5e9c2fe57588094ff202f9217c0cbbb16ceb66 100644
--- a/Core/Material/MaterialUtils.cpp
+++ b/Core/Material/MaterialUtils.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MaterialUtils.h"
-#include "Material.h"
-#include "PhysicalConstants.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Material/Material.h"
+#include "Core/Basics/PhysicalConstants.h"
 
 using PhysConsts::g_factor_n;
 using PhysConsts::h_bar;
diff --git a/Core/Material/MaterialUtils.h b/Core/Material/MaterialUtils.h
index 4acd52221d4aeaf92006dd5141a1c98424fc5975..722872bd73a8bf47b14dac97da4c3dbdcc7aaa86 100644
--- a/Core/Material/MaterialUtils.h
+++ b/Core/Material/MaterialUtils.h
@@ -15,10 +15,10 @@
 #ifndef MATERIALUTILS_H_
 #define MATERIALUTILS_H_
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "Material.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Material/Material.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! A number of materials-related helper functions for internal use
 //! @ingroup materials
diff --git a/Core/Material/RefractiveMaterialImpl.cpp b/Core/Material/RefractiveMaterialImpl.cpp
index b4b08496ef5bdacd97083581ccba74c18b22c601..eae8b95d44f1bce0f1e1cfdcb8206366c7d9c492 100644
--- a/Core/Material/RefractiveMaterialImpl.cpp
+++ b/Core/Material/RefractiveMaterialImpl.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RefractiveMaterialImpl.h"
-#include "WavevectorInfo.h"
+#include "Core/Material/RefractiveMaterialImpl.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 RefractiveMaterialImpl::RefractiveMaterialImpl(const std::string& name, double delta, double beta,
                                                kvector_t magnetization)
diff --git a/Core/Material/RefractiveMaterialImpl.h b/Core/Material/RefractiveMaterialImpl.h
index 0f57e202459aebafd4a53bd813c9920fa03fd7c4..3eb118112df91ec337d690c1bef2c5586b8efd28 100644
--- a/Core/Material/RefractiveMaterialImpl.h
+++ b/Core/Material/RefractiveMaterialImpl.h
@@ -15,8 +15,8 @@
 #ifndef REFRACTIVEMATERIALIMPL_H_
 #define REFRACTIVEMATERIALIMPL_H_
 
-#include "MagneticMaterialImpl.h"
-#include "Material.h"
+#include "Core/Material/MagneticMaterialImpl.h"
+#include "Core/Material/Material.h"
 
 //! Material implementation based on refractive coefficiencts (valid for one wavelength value only)
 //! @ingroup materials
diff --git a/Core/Multilayer/DecouplingApproximationStrategy.cpp b/Core/Multilayer/DecouplingApproximationStrategy.cpp
index 76bb2899b9c368862646bc30bd70cccb3a1d3cd1..be15ae02e26e7bab4439a752cd6cc4790181fcdc 100644
--- a/Core/Multilayer/DecouplingApproximationStrategy.cpp
+++ b/Core/Multilayer/DecouplingApproximationStrategy.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "DecouplingApproximationStrategy.h"
-#include "Exceptions.h"
-#include "FormFactorCoherentSum.h"
-#include "IInterferenceFunction.h"
-#include "InterferenceFunctionUtils.h"
-#include "MathFunctions.h"
-#include "RealParameter.h"
-#include "SimulationElement.h"
+#include "Core/Multilayer/DecouplingApproximationStrategy.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Multilayer/InterferenceFunctionUtils.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 using InterferenceFunctionUtils::PrecomputePolarizedFormFactors;
 using InterferenceFunctionUtils::PrecomputeScalarFormFactors;
diff --git a/Core/Multilayer/DecouplingApproximationStrategy.h b/Core/Multilayer/DecouplingApproximationStrategy.h
index e38be51ab7ab607a649a475a5245f5c3ee1aa165..45b1d8dd8c6b760b0e443eae21a847803df42c83 100644
--- a/Core/Multilayer/DecouplingApproximationStrategy.h
+++ b/Core/Multilayer/DecouplingApproximationStrategy.h
@@ -15,7 +15,7 @@
 #ifndef DECOUPLINGAPPROXIMATIONSTRATEGY_H
 #define DECOUPLINGAPPROXIMATIONSTRATEGY_H
 
-#include "IInterferenceFunctionStrategy.h"
+#include "Core/Multilayer/IInterferenceFunctionStrategy.h"
 
 class SimulationElement;
 
diff --git a/Core/Multilayer/FormFactorBAPol.cpp b/Core/Multilayer/FormFactorBAPol.cpp
index 226e83f614dad7ab4c6470943057ca80d1080eee..7605c0b46131372db80bb304d7fb3e23a36fbbad 100644
--- a/Core/Multilayer/FormFactorBAPol.cpp
+++ b/Core/Multilayer/FormFactorBAPol.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorBAPol.h"
-#include "BornAgainNamespace.h"
-#include "WavevectorInfo.h"
+#include "Core/Multilayer/FormFactorBAPol.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Vector/WavevectorInfo.h"
 #include <stdexcept>
 
 FormFactorBAPol::FormFactorBAPol(const IFormFactor& form_factor)
diff --git a/Core/Multilayer/FormFactorBAPol.h b/Core/Multilayer/FormFactorBAPol.h
index f033e81196a2491d8449103962a7aa9a62c7b35a..514098c4bbc41a3ce4167522cb7be005b87d8f2f 100644
--- a/Core/Multilayer/FormFactorBAPol.h
+++ b/Core/Multilayer/FormFactorBAPol.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORBAPOL_H
 #define FORMFACTORBAPOL_H
 
-#include "IFormFactor.h"
+#include "Core/Scattering/IFormFactor.h"
 #include <memory>
 
 //! Evaluates the matrix BA term in a polarized IFormFactor.
diff --git a/Core/Multilayer/FormFactorDWBA.cpp b/Core/Multilayer/FormFactorDWBA.cpp
index f12b79ba0bb00e726e03611ed2cefb1b7a201970..2d3784a856b5f627736e52f69ec8ba18dc47cf33 100644
--- a/Core/Multilayer/FormFactorDWBA.cpp
+++ b/Core/Multilayer/FormFactorDWBA.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDWBA.h"
-#include "BornAgainNamespace.h"
-#include "ILayerRTCoefficients.h"
-#include "WavevectorInfo.h"
+#include "Core/Multilayer/FormFactorDWBA.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 FormFactorDWBA::FormFactorDWBA(const IFormFactor& form_factor) : mP_form_factor(form_factor.clone())
 {
diff --git a/Core/Multilayer/FormFactorDWBA.h b/Core/Multilayer/FormFactorDWBA.h
index 4c8c8d011e3191626fc4e048ea2b792662ed3b07..8b2702940befb0ac6d1d60533e5b1a0d7bf33197 100644
--- a/Core/Multilayer/FormFactorDWBA.h
+++ b/Core/Multilayer/FormFactorDWBA.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORDWBA_H
 #define FORMFACTORDWBA_H
 
-#include "IFormFactor.h"
+#include "Core/Scattering/IFormFactor.h"
 #include <memory>
 
 class ILayerRTCoefficients;
diff --git a/Core/Multilayer/FormFactorDWBAPol.cpp b/Core/Multilayer/FormFactorDWBAPol.cpp
index 5decad0bc10b24d0b73820dac17e72534a9b20b3..66c413b6cdafdabca4435dd350a56e160f3f3d6a 100644
--- a/Core/Multilayer/FormFactorDWBAPol.cpp
+++ b/Core/Multilayer/FormFactorDWBAPol.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDWBAPol.h"
-#include "BornAgainNamespace.h"
-#include "ILayerRTCoefficients.h"
-#include "WavevectorInfo.h"
+#include "Core/Multilayer/FormFactorDWBAPol.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 namespace
 {
diff --git a/Core/Multilayer/FormFactorDWBAPol.h b/Core/Multilayer/FormFactorDWBAPol.h
index ea6a89446d38f426a7835b9fdfa066b56595ff6c..6eda166acbc0e1f0fbe8342eff3b4eb5e45a3f19 100644
--- a/Core/Multilayer/FormFactorDWBAPol.h
+++ b/Core/Multilayer/FormFactorDWBAPol.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORDWBAPOL_H
 #define FORMFACTORDWBAPOL_H
 
-#include "IFormFactor.h"
+#include "Core/Scattering/IFormFactor.h"
 #include <memory>
 
 class ILayerRTCoefficients;
diff --git a/Core/Multilayer/IFresnelMap.cpp b/Core/Multilayer/IFresnelMap.cpp
index 8e93d6598760b18c43fcefdf193dcede667a6331..d81c6ef58d8653e96b8a200f9a5ffd769d5cb166 100644
--- a/Core/Multilayer/IFresnelMap.cpp
+++ b/Core/Multilayer/IFresnelMap.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IFresnelMap.h"
-#include "Slice.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Computation/Slice.h"
 
 IFresnelMap::IFresnelMap(std::unique_ptr<ISpecularStrategy> strategy)
     : m_use_cache(true), m_Strategy(std::move(strategy))
diff --git a/Core/Multilayer/IFresnelMap.h b/Core/Multilayer/IFresnelMap.h
index 2dc6547abd964f6e099552b9d7b2b37037d7e812..978acb02147f7b7c766e7c990adf5487aa1e193c 100644
--- a/Core/Multilayer/IFresnelMap.h
+++ b/Core/Multilayer/IFresnelMap.h
@@ -15,11 +15,11 @@
 #ifndef IFRESNELMAP_H
 #define IFRESNELMAP_H
 
-#include "ILayerRTCoefficients.h"
-#include "ISpecularStrategy.h"
-#include "Slice.h"
-#include "Vectors3D.h"
-#include "WinDllMacros.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Multilayer/IInterferenceFunctionStrategy.cpp b/Core/Multilayer/IInterferenceFunctionStrategy.cpp
index ed192fb4fad60c3bddedfa879c37dfdddeb27290..48632a46b294a21f42fee69911ab8042be62baff 100644
--- a/Core/Multilayer/IInterferenceFunctionStrategy.cpp
+++ b/Core/Multilayer/IInterferenceFunctionStrategy.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "IInterferenceFunctionStrategy.h"
-#include "Exceptions.h"
-#include "FormFactorCoherentSum.h"
-#include "IntegratorMCMiser.h"
-#include "InterferenceFunctionNone.h"
-#include "SimulationElement.h"
+#include "Core/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Tools/IntegratorMCMiser.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 IInterferenceFunctionStrategy::IInterferenceFunctionStrategy(const SimulationOptions& sim_params,
                                                              bool polarized)
diff --git a/Core/Multilayer/IInterferenceFunctionStrategy.h b/Core/Multilayer/IInterferenceFunctionStrategy.h
index a83e0bf3a77a8c7010ea825cb9352c909561ceae..75abdec9de0136d1bc7f8f5b07ed68392f84337a 100644
--- a/Core/Multilayer/IInterferenceFunctionStrategy.h
+++ b/Core/Multilayer/IInterferenceFunctionStrategy.h
@@ -15,8 +15,8 @@
 #ifndef IINTERFERENCEFUNCTIONSTRATEGY_H
 #define IINTERFERENCEFUNCTIONSTRATEGY_H
 
-#include "Complex.h"
-#include "SimulationOptions.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Parametrization/SimulationOptions.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Multilayer/ILayerRTCoefficients.h b/Core/Multilayer/ILayerRTCoefficients.h
index f60a64e97112674a00cc18e0ab5796efc87e31b8..afa7368b2e056de14d498b84abc611c2af87fbe2 100644
--- a/Core/Multilayer/ILayerRTCoefficients.h
+++ b/Core/Multilayer/ILayerRTCoefficients.h
@@ -15,9 +15,9 @@
 #ifndef ILAYERRTCOEFFICIENTS_H
 #define ILAYERRTCOEFFICIENTS_H
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "Exceptions.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Basics/Exceptions.h"
 
 //! Interface to access reflection/transmission coefficients.
 //! @ingroup algorithms_internal
diff --git a/Core/Multilayer/IMultiLayerBuilder.cpp b/Core/Multilayer/IMultiLayerBuilder.cpp
index 923a31ccd4aaace4c8122ecbe79efc25afbfd56f..1d5434c74a0b4afc1a961de3c5b5d8609767c53e 100644
--- a/Core/Multilayer/IMultiLayerBuilder.cpp
+++ b/Core/Multilayer/IMultiLayerBuilder.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IMultiLayerBuilder.h"
-#include "BornAgainNamespace.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
 
 IMultiLayerBuilder::IMultiLayerBuilder()
 {
diff --git a/Core/Multilayer/IMultiLayerBuilder.h b/Core/Multilayer/IMultiLayerBuilder.h
index 9182d48ec485098c1a71e13b378ce26475bd8097..53d04f88ea6898b33540ab257b23fe7d5fa7795a 100644
--- a/Core/Multilayer/IMultiLayerBuilder.h
+++ b/Core/Multilayer/IMultiLayerBuilder.h
@@ -15,7 +15,7 @@
 #ifndef IMULTILAYERBUILDER_H
 #define IMULTILAYERBUILDER_H
 
-#include "IParameterized.h"
+#include "Core/Parametrization/IParameterized.h"
 
 class MultiLayer;
 
diff --git a/Core/Multilayer/ISpecularStrategy.h b/Core/Multilayer/ISpecularStrategy.h
index dfbfd1068b00db0aa67333bd091bdc1d6bbd1172..9d811ab99ffdfd051f8f92909472abd65392ee49 100644
--- a/Core/Multilayer/ISpecularStrategy.h
+++ b/Core/Multilayer/ISpecularStrategy.h
@@ -15,8 +15,8 @@
 #ifndef ISPECULARSTRATEGY_H
 #define ISPECULARSTRATEGY_H
 
-#include "ILayerRTCoefficients.h"
-#include "Slice.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Computation/Slice.h"
 
 //! Interface for the Fresnel computations, both in the scalar and magnetic case
 //!
diff --git a/Core/Multilayer/InterferenceFunctionUtils.cpp b/Core/Multilayer/InterferenceFunctionUtils.cpp
index 2656c05792dc1f4e42260f6667759627c67fcaa7..dfb00602743c47caffba2dfc7f35e97346467cd0 100644
--- a/Core/Multilayer/InterferenceFunctionUtils.cpp
+++ b/Core/Multilayer/InterferenceFunctionUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionUtils.h"
-#include "FormFactorCoherentSum.h"
+#include "Core/Multilayer/InterferenceFunctionUtils.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
 
 namespace InterferenceFunctionUtils
 {
diff --git a/Core/Multilayer/InterferenceFunctionUtils.h b/Core/Multilayer/InterferenceFunctionUtils.h
index 2fad9d52d0b1cfb1f384b4ed2f92810cff79a761..28f3a4e465cd80b7407085488f06c518c2d8b7dc 100644
--- a/Core/Multilayer/InterferenceFunctionUtils.h
+++ b/Core/Multilayer/InterferenceFunctionUtils.h
@@ -15,7 +15,7 @@
 #ifndef INTERFERENCEFUNCTIONUTILS_H
 #define INTERFERENCEFUNCTIONUTILS_H
 
-#include "Complex.h"
+#include "Core/Basics/Complex.h"
 #include <Eigen/StdVector>
 #include <vector>
 
diff --git a/Core/Multilayer/KzComputation.cpp b/Core/Multilayer/KzComputation.cpp
index 23d440ca20a002a14197b959fd00d34ccb28c6c4..6263f1ade07ef4f237656c9b1b3ee4209c0db3cf 100644
--- a/Core/Multilayer/KzComputation.cpp
+++ b/Core/Multilayer/KzComputation.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "KzComputation.h"
-#include "Layer.h"
-#include "MultiLayer.h"
-#include "Slice.h"
-#include "Units.h"
+#include "Core/Multilayer/KzComputation.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/Core/Multilayer/KzComputation.h b/Core/Multilayer/KzComputation.h
index ab07db0474a30072673ad06aad8afc31aa183e5d..d0d125ed89577a7e7b719a3a407a26a2e6ef9098 100644
--- a/Core/Multilayer/KzComputation.h
+++ b/Core/Multilayer/KzComputation.h
@@ -15,9 +15,9 @@
 #ifndef IKZCOMPUTATION_H
 #define IKZCOMPUTATION_H
 
-#include "Complex.h"
-#include "ICloneable.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Vector/Vectors3D.h"
 #include <vector>
 
 class Slice;
diff --git a/Core/Multilayer/Layer.cpp b/Core/Multilayer/Layer.cpp
index dfbd4adcd02aa508d2fa0b7d24d8dcd8bd53606f..38010cec68427190abce250c4550cf929c1452a5 100644
--- a/Core/Multilayer/Layer.cpp
+++ b/Core/Multilayer/Layer.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "Layer.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "ILayout.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/ILayout.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 
 //! Constructor of a layer with thickness and material
 //! @param material: material the layer is made of
diff --git a/Core/Multilayer/Layer.h b/Core/Multilayer/Layer.h
index 02c4421fc9e3180ea77ede270a4ff82baf51e3e6..6ad97d702be41880b6111f003cab2ddae00ff227 100644
--- a/Core/Multilayer/Layer.h
+++ b/Core/Multilayer/Layer.h
@@ -15,9 +15,9 @@
 #ifndef LAYER_H
 #define LAYER_H
 
-#include "ISample.h"
-#include "Material.h"
-#include "SafePointerVector.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Material/Material.h"
+#include "Core/Tools/SafePointerVector.h"
 
 class ILayout;
 
diff --git a/Core/Multilayer/LayerFillLimits.cpp b/Core/Multilayer/LayerFillLimits.cpp
index b6c0deda3a5b6cdfa2c8f6a7fa3ce87cd58ef7e2..8be060f283f5ce3a72dc503d2cd700338b11245e 100644
--- a/Core/Multilayer/LayerFillLimits.cpp
+++ b/Core/Multilayer/LayerFillLimits.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "LayerFillLimits.h"
+#include "Core/Multilayer/LayerFillLimits.h"
 #include <algorithm>
 #include <stdexcept>
 
diff --git a/Core/Multilayer/LayerFillLimits.h b/Core/Multilayer/LayerFillLimits.h
index 3b13f19ab11196748693262c745368c4361a6e7c..c20a3970c27269b7e12e635dc08dd705203fe319 100644
--- a/Core/Multilayer/LayerFillLimits.h
+++ b/Core/Multilayer/LayerFillLimits.h
@@ -15,8 +15,8 @@
 #ifndef LAYERFILLLIMITS_H
 #define LAYERFILLLIMITS_H
 
-#include "IParticle.h"
-#include "ZLimits.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Particle/ZLimits.h"
 #include <cstddef>
 #include <utility>
 #include <vector>
diff --git a/Core/Multilayer/LayerInterface.cpp b/Core/Multilayer/LayerInterface.cpp
index 84d18b6a45a6c74a66f82cba6290e49d974c8edb..de77397f5ac23585630791dafe9c820108123d5a 100644
--- a/Core/Multilayer/LayerInterface.cpp
+++ b/Core/Multilayer/LayerInterface.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "LayerInterface.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "LayerRoughness.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Multilayer/LayerRoughness.h"
 
 LayerInterface::LayerInterface() : m_topLayer(nullptr), m_bottomLayer(nullptr)
 {
diff --git a/Core/Multilayer/LayerInterface.h b/Core/Multilayer/LayerInterface.h
index c58051417f5d8ad17d9458963f170c784ce398a2..3d3bd9e06d9430424ae1193f33edfd019ff4dd54 100644
--- a/Core/Multilayer/LayerInterface.h
+++ b/Core/Multilayer/LayerInterface.h
@@ -15,7 +15,7 @@
 #ifndef LAYERINTERFACE_H
 #define LAYERINTERFACE_H
 
-#include "ISample.h"
+#include "Core/Scattering/ISample.h"
 #include <memory>
 
 class LayerRoughness;
diff --git a/Core/Multilayer/LayerRoughness.cpp b/Core/Multilayer/LayerRoughness.cpp
index 368f318ae974e3de5d326e15660b2883d9aba5b4..d46f61b5f8c54be66ba30aae5ded2a55163ea763 100644
--- a/Core/Multilayer/LayerRoughness.cpp
+++ b/Core/Multilayer/LayerRoughness.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "LayerRoughness.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 
 LayerRoughness::LayerRoughness() : m_sigma(0), m_hurstParameter(0), m_lateralCorrLength(0)
 {
diff --git a/Core/Multilayer/LayerRoughness.h b/Core/Multilayer/LayerRoughness.h
index db24be98f1483ac26538d1783f6eb0722f7698a6..fcfb30b30347dbf22dc41ee22474f559621550cf 100644
--- a/Core/Multilayer/LayerRoughness.h
+++ b/Core/Multilayer/LayerRoughness.h
@@ -15,8 +15,8 @@
 #ifndef LAYERROUGHNESS_H
 #define LAYERROUGHNESS_H
 
-#include "ISample.h"
-#include "Vectors3D.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! A roughness of interface between two layers.
 //!
diff --git a/Core/Multilayer/LayoutStrategyBuilder.cpp b/Core/Multilayer/LayoutStrategyBuilder.cpp
index c6a15aae5dd3494e4336853f282ab031a3b87d0b..3e6fd12ae83a615060d9c55502e9f3f9961fcc72 100644
--- a/Core/Multilayer/LayoutStrategyBuilder.cpp
+++ b/Core/Multilayer/LayoutStrategyBuilder.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "LayoutStrategyBuilder.h"
-#include "DecouplingApproximationStrategy.h"
-#include "Exceptions.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "ProcessedLayout.h"
-#include "SSCApproximationStrategy.h"
+#include "Core/Multilayer/LayoutStrategyBuilder.h"
+#include "Core/Multilayer/DecouplingApproximationStrategy.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Computation/ProcessedLayout.h"
+#include "Core/Multilayer/SSCApproximationStrategy.h"
 
 LayoutStrategyBuilder::LayoutStrategyBuilder(const ProcessedLayout* p_layout,
                                              const SimulationOptions& sim_params, bool polarized)
diff --git a/Core/Multilayer/LayoutStrategyBuilder.h b/Core/Multilayer/LayoutStrategyBuilder.h
index 639c457facc633af7427e1732254944013a6548b..6f297f2233915ec0bb8feda3d7ec4bd1e92fd416 100644
--- a/Core/Multilayer/LayoutStrategyBuilder.h
+++ b/Core/Multilayer/LayoutStrategyBuilder.h
@@ -15,7 +15,7 @@
 #ifndef LAYOUTSTRATEGYBUILDER_H
 #define LAYOUTSTRATEGYBUILDER_H
 
-#include "SimulationOptions.h"
+#include "Core/Parametrization/SimulationOptions.h"
 #include <memory>
 
 class IInterferenceFunction;
diff --git a/Core/Multilayer/MatrixFresnelMap.cpp b/Core/Multilayer/MatrixFresnelMap.cpp
index 9a36997da43e42a13db5bb76b9935dc3241f2041..c5d564577e6e1e49c1c7fb4c70fcf1259eb00879 100644
--- a/Core/Multilayer/MatrixFresnelMap.cpp
+++ b/Core/Multilayer/MatrixFresnelMap.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MatrixFresnelMap.h"
-#include "SimulationElement.h"
-#include "Slice.h"
-#include "SpecularMagneticOldStrategy.h"
-#include "SpecularMagneticStrategy.h"
+#include "Core/Multilayer/MatrixFresnelMap.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Multilayer/SpecularMagneticOldStrategy.h"
+#include "Core/Multilayer/SpecularMagneticStrategy.h"
 #include <functional>
 
 MatrixFresnelMap::MatrixFresnelMap(std::unique_ptr<ISpecularStrategy> strategy)
diff --git a/Core/Multilayer/MatrixFresnelMap.h b/Core/Multilayer/MatrixFresnelMap.h
index 0be1c194a0ab9d61746251c2d7ef17bedf2411f4..b75a032f98220ef7adc3f2c6b330b9aba953a133 100644
--- a/Core/Multilayer/MatrixFresnelMap.h
+++ b/Core/Multilayer/MatrixFresnelMap.h
@@ -15,10 +15,10 @@
 #ifndef MATRIXFRESNELMAP_H
 #define MATRIXFRESNELMAP_H
 
-#include "IFresnelMap.h"
-#include "MatrixRTCoefficients.h"
-#include "MatrixRTCoefficients_v2.h"
-#include "SpecularMagneticStrategy.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/MatrixRTCoefficients.h"
+#include "Core/Multilayer/MatrixRTCoefficients_v2.h"
+#include "Core/Multilayer/SpecularMagneticStrategy.h"
 #include <cstddef>
 #include <memory>
 #include <unordered_map>
diff --git a/Core/Multilayer/MatrixRTCoefficients.cpp b/Core/Multilayer/MatrixRTCoefficients.cpp
index d625ea4673cf5f7a66e503f7b5ba3e3f286f6c11..4377b479d9df663719d7679a6a8f9c72322f6390 100644
--- a/Core/Multilayer/MatrixRTCoefficients.cpp
+++ b/Core/Multilayer/MatrixRTCoefficients.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MatrixRTCoefficients.h"
+#include "Core/Multilayer/MatrixRTCoefficients.h"
 
 MatrixRTCoefficients* MatrixRTCoefficients::clone() const
 {
diff --git a/Core/Multilayer/MatrixRTCoefficients.h b/Core/Multilayer/MatrixRTCoefficients.h
index 45416d12bc983970f760668aeb05561505701f28..b2255f00475164a26713ec0ad329b1ae47840b49 100644
--- a/Core/Multilayer/MatrixRTCoefficients.h
+++ b/Core/Multilayer/MatrixRTCoefficients.h
@@ -15,7 +15,7 @@
 #ifndef MATRIXRTCOEFFICIENTS_H
 #define MATRIXRTCOEFFICIENTS_H
 
-#include "ILayerRTCoefficients.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
 
 //! Specular reflection and transmission coefficients in a layer in case
 //! of 2x2 matrix interactions between the layers and the scattered particle.
diff --git a/Core/Multilayer/MatrixRTCoefficients_v2.cpp b/Core/Multilayer/MatrixRTCoefficients_v2.cpp
index fbbd28c21a4180621efc47fe0b80de7d4df850e0..70a3fc6b4bcb139191458aba8be711083d0fce81 100644
--- a/Core/Multilayer/MatrixRTCoefficients_v2.cpp
+++ b/Core/Multilayer/MatrixRTCoefficients_v2.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MatrixRTCoefficients_v2.h"
+#include "Core/Multilayer/MatrixRTCoefficients_v2.h"
 
 namespace
 {
diff --git a/Core/Multilayer/MatrixRTCoefficients_v2.h b/Core/Multilayer/MatrixRTCoefficients_v2.h
index 19b08e38fc3cef61c5d8e720e44813de2c10b188..40e8c96bee7557b43577fcdba394e80d27fbce43 100644
--- a/Core/Multilayer/MatrixRTCoefficients_v2.h
+++ b/Core/Multilayer/MatrixRTCoefficients_v2.h
@@ -15,8 +15,8 @@
 #ifndef MATRIXRTCOEFFICIENTS_V2_H
 #define MATRIXRTCOEFFICIENTS_V2_H
 
-#include "ILayerRTCoefficients.h"
-#include "Vectors3D.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Vector/Vectors3D.h"
 #include <vector>
 
 //! Specular reflection and transmission coefficients in a layer in case
diff --git a/Core/Multilayer/MultiLayer.cpp b/Core/Multilayer/MultiLayer.cpp
index 5f912ad4e657755386cf5f6520c37862d1a2079c..14d1fb641b9767f8387f06d1fe9bf8b0ea5084dd 100644
--- a/Core/Multilayer/MultiLayer.cpp
+++ b/Core/Multilayer/MultiLayer.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayer.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "ILayout.h"
-#include "Layer.h"
-#include "LayerFillLimits.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MaterialUtils.h"
-#include "MultiLayerUtils.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/ILayout.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerFillLimits.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 
 MultiLayer::MultiLayer() : m_crossCorrLength(0), m_roughness_model(RoughnessModel::DEFAULT)
 {
diff --git a/Core/Multilayer/MultiLayer.h b/Core/Multilayer/MultiLayer.h
index a05ae12a8b598d98a3e4da38a6af83b7dc2b6fac..c998c544bc2efc91a6baf1ca12aacd8d43bc674e 100644
--- a/Core/Multilayer/MultiLayer.h
+++ b/Core/Multilayer/MultiLayer.h
@@ -15,11 +15,11 @@
 #ifndef MULTILAYER_H
 #define MULTILAYER_H
 
-#include "ISample.h"
-#include "RoughnessModels.h"
-#include "SafePointerVector.h"
-#include "Vectors3D.h"
-#include "ZLimits.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Multilayer/RoughnessModels.h"
+#include "Core/Tools/SafePointerVector.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Core/Particle/ZLimits.h"
 
 #include <functional>
 
diff --git a/Core/Multilayer/MultiLayerFuncs.cpp b/Core/Multilayer/MultiLayerFuncs.cpp
index 482661d7bc5eb387bfc3479713b99906ada1cf2a..20c761a53c9f93e6e239bb57a321c377404326c9 100644
--- a/Core/Multilayer/MultiLayerFuncs.cpp
+++ b/Core/Multilayer/MultiLayerFuncs.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayerFuncs.h"
-#include "ProcessedSample.h"
-#include "ProfileHelper.h"
-#include "SimulationOptions.h"
+#include "Core/Multilayer/MultiLayerFuncs.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Computation/ProfileHelper.h"
+#include "Core/Parametrization/SimulationOptions.h"
 
 std::vector<complex_t> MaterialProfile(const MultiLayer& multilayer, int n_points, double z_min,
                                        double z_max)
diff --git a/Core/Multilayer/MultiLayerFuncs.h b/Core/Multilayer/MultiLayerFuncs.h
index 1c3e24a73e8ea8aa24e125cea8d36c421f1c8b8b..cddd6220048c98fa30eabfa588c599c4f7c88841 100644
--- a/Core/Multilayer/MultiLayerFuncs.h
+++ b/Core/Multilayer/MultiLayerFuncs.h
@@ -15,8 +15,8 @@
 #ifndef MULTILAYERFUNCS_H_
 #define MULTILAYERFUNCS_H_
 
-#include "Complex.h"
-#include "WinDllMacros.h"
+#include "Core/Basics/Complex.h"
+#include "Wrap/WinDllMacros.h"
 #include <utility>
 #include <vector>
 
diff --git a/Core/Multilayer/RoughnessModels.cpp b/Core/Multilayer/RoughnessModels.cpp
index ddb46ed2511b2d4249e00079d10bde89988e5bf9..3e32236115cd0f8763bf3d4c63c7c5f0d24eba66 100644
--- a/Core/Multilayer/RoughnessModels.cpp
+++ b/Core/Multilayer/RoughnessModels.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RoughnessModels.h"
+#include "Core/Multilayer/RoughnessModels.h"
 
 #include <map>
 
diff --git a/Core/Multilayer/RoughnessModels.h b/Core/Multilayer/RoughnessModels.h
index 9fb45fdda81ad9a5079ad24372a7f04f9a841312..4b237f2d7380c6718f58e7ef196ead4f08443b26 100644
--- a/Core/Multilayer/RoughnessModels.h
+++ b/Core/Multilayer/RoughnessModels.h
@@ -17,7 +17,7 @@
 
 #include <string>
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 // workaround for SWIG (instead of just writing enum class RoughnessModel ...)
 struct BA_CORE_API_ RoughnessModelWrap {
diff --git a/Core/Multilayer/SSCAHelper.cpp b/Core/Multilayer/SSCAHelper.cpp
index 59d6dede3ff39f2a726b47beaa18d83ab80dfd2d..abb68440c64b114a6856b67f89922b8382317d09 100644
--- a/Core/Multilayer/SSCAHelper.cpp
+++ b/Core/Multilayer/SSCAHelper.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SSCAHelper.h"
-#include "Exceptions.h"
-#include "FormFactorCoherentSum.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Multilayer/SSCAHelper.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
 
 SSCAHelper::SSCAHelper(double kappa) : m_kappa(kappa), m_mean_radius{} {}
 
diff --git a/Core/Multilayer/SSCAHelper.h b/Core/Multilayer/SSCAHelper.h
index e505d794c87a033010eb834d21cca449e8841985..511d9a3ee6dd20e5925392bd3b136f008350e1b4 100644
--- a/Core/Multilayer/SSCAHelper.h
+++ b/Core/Multilayer/SSCAHelper.h
@@ -15,9 +15,9 @@
 #ifndef SSCAHELPER_H
 #define SSCAHELPER_H
 
-#include "Complex.h"
-#include "IInterferenceFunctionStrategy.h"
-#include "InterferenceFunctionUtils.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Core/Multilayer/InterferenceFunctionUtils.h"
 #include <Eigen/StdVector>
 
 class FormFactorCoherentSum;
diff --git a/Core/Multilayer/SSCApproximationStrategy.cpp b/Core/Multilayer/SSCApproximationStrategy.cpp
index 17309c0b0c8e98589b737587cc0a4020f3294cfe..86c36f1e3cb9141fca6042fbb3a784d1af25aa11 100644
--- a/Core/Multilayer/SSCApproximationStrategy.cpp
+++ b/Core/Multilayer/SSCApproximationStrategy.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SSCApproximationStrategy.h"
-#include "FormFactorCoherentSum.h"
-#include "IInterferenceFunction.h"
-#include "InterferenceFunctionUtils.h"
-#include "SimulationElement.h"
+#include "Core/Multilayer/SSCApproximationStrategy.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Multilayer/InterferenceFunctionUtils.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 using InterferenceFunctionUtils::PrecomputePolarizedFormFactors;
 using InterferenceFunctionUtils::PrecomputeScalarFormFactors;
diff --git a/Core/Multilayer/SSCApproximationStrategy.h b/Core/Multilayer/SSCApproximationStrategy.h
index 45d265e9e3c1fc4ed4e2b3f4f045933ec4075d20..69623a1a5c6c164387a93c9e2d960523ca7995fb 100644
--- a/Core/Multilayer/SSCApproximationStrategy.h
+++ b/Core/Multilayer/SSCApproximationStrategy.h
@@ -15,8 +15,8 @@
 #ifndef SSCAPPROXIMATIONSTRATEGY_H
 #define SSCAPPROXIMATIONSTRATEGY_H
 
-#include "IInterferenceFunctionStrategy.h"
-#include "SSCAHelper.h"
+#include "Core/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Core/Multilayer/SSCAHelper.h"
 
 class SimulationElement;
 
diff --git a/Core/Multilayer/SampleBuilderNode.cpp b/Core/Multilayer/SampleBuilderNode.cpp
index 1ac5b34007e758d8b0b19e76037aa2354b667dc3..b279595128d90084e8cbf6c0a0efe2fbcef6658f 100644
--- a/Core/Multilayer/SampleBuilderNode.cpp
+++ b/Core/Multilayer/SampleBuilderNode.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SampleBuilderNode.h"
-#include "IMultiLayerBuilder.h"
-#include "MultiLayer.h"
-#include "ParameterPool.h"
+#include "Core/Multilayer/SampleBuilderNode.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPool.h"
 #include <stdexcept>
 
 namespace
diff --git a/Core/Multilayer/SampleBuilderNode.h b/Core/Multilayer/SampleBuilderNode.h
index ffda54203e683ca913a3a1bcd03d2b56942346c0..9fb46956a415c9a9ffdbbe283eecd14bf8491da7 100644
--- a/Core/Multilayer/SampleBuilderNode.h
+++ b/Core/Multilayer/SampleBuilderNode.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEBUILDERNODE_H
 #define SAMPLEBUILDERNODE_H
 
-#include "INode.h"
+#include "Core/Parametrization/INode.h"
 #include <memory>
 
 class IMultiLayerBuilder;
diff --git a/Core/Multilayer/SampleProvider.cpp b/Core/Multilayer/SampleProvider.cpp
index 8e26d0112db67daef0af2dd3ba23abc4635c3b8d..85477c9845c0571fcf95f69bc1cd71186493446f 100644
--- a/Core/Multilayer/SampleProvider.cpp
+++ b/Core/Multilayer/SampleProvider.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SampleProvider.h"
-#include "MultiLayer.h"
+#include "Core/Multilayer/SampleProvider.h"
+#include "Core/Multilayer/MultiLayer.h"
 #include <cassert>
 
 SampleProvider::SampleProvider() {}
diff --git a/Core/Multilayer/SampleProvider.h b/Core/Multilayer/SampleProvider.h
index df654c941135febe7358ebcc9baea38571b83efb..3653ceca66e7678dc8b7042f0070d3acdf5b4808 100644
--- a/Core/Multilayer/SampleProvider.h
+++ b/Core/Multilayer/SampleProvider.h
@@ -15,8 +15,8 @@
 #ifndef SAMPLEPROVIDER_H
 #define SAMPLEPROVIDER_H
 
-#include "INode.h"
-#include "SampleBuilderNode.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Multilayer/SampleBuilderNode.h"
 
 class MultiLayer;
 
diff --git a/Core/Multilayer/ScalarFresnelMap.cpp b/Core/Multilayer/ScalarFresnelMap.cpp
index 460246b7bbd317ce2b4ae180d6d955eaeb7372c1..470ae5b922939f368dd17c3065d7500dd486c3ce 100644
--- a/Core/Multilayer/ScalarFresnelMap.cpp
+++ b/Core/Multilayer/ScalarFresnelMap.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ScalarFresnelMap.h"
-#include "ScalarRTCoefficients.h"
-#include "SimulationElement.h"
-#include "Slice.h"
-#include "Vectors3D.h"
+#include "Core/Multilayer/ScalarFresnelMap.h"
+#include "Core/Multilayer/ScalarRTCoefficients.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Vector/Vectors3D.h"
 #include <functional>
 
 ScalarFresnelMap::ScalarFresnelMap(std::unique_ptr<ISpecularStrategy> strategy)
diff --git a/Core/Multilayer/ScalarFresnelMap.h b/Core/Multilayer/ScalarFresnelMap.h
index 6011c95326933113209dec1c7e1dcea06f5577ba..cf436358409dff9a5983a742c2a9fc246c984ba8 100644
--- a/Core/Multilayer/ScalarFresnelMap.h
+++ b/Core/Multilayer/ScalarFresnelMap.h
@@ -15,9 +15,9 @@
 #ifndef SCALARFRESNELMAP_H
 #define SCALARFRESNELMAP_H
 
-#include "IFresnelMap.h"
-#include "ISpecularStrategy.h"
-#include "ScalarRTCoefficients.h"
+#include "Core/Multilayer/IFresnelMap.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
+#include "Core/Multilayer/ScalarRTCoefficients.h"
 #include <cstddef>
 #include <unordered_map>
 #include <utility>
diff --git a/Core/Multilayer/ScalarRTCoefficients.h b/Core/Multilayer/ScalarRTCoefficients.h
index 64a5e9161dcf698120f3c87d857d8fcd835b7018..26cf75c69cbb4aa8b4c8defc24168beb0ec04a03 100644
--- a/Core/Multilayer/ScalarRTCoefficients.h
+++ b/Core/Multilayer/ScalarRTCoefficients.h
@@ -15,9 +15,9 @@
 #ifndef SCALARRTCOEFFICIENTS_H
 #define SCALARRTCOEFFICIENTS_H
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "ILayerRTCoefficients.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
 
 //! Specular reflection and transmission coefficients in a layer in case
 //! of scalar interactions between the layers and the scattered particle.
diff --git a/Core/Multilayer/SpecularMagneticOldStrategy.cpp b/Core/Multilayer/SpecularMagneticOldStrategy.cpp
index 3f33b4cde67050618ecb0d740c86a48b97e78599..20d3275271fbdd237a4a66110bf52c1aedbc673d 100644
--- a/Core/Multilayer/SpecularMagneticOldStrategy.cpp
+++ b/Core/Multilayer/SpecularMagneticOldStrategy.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "SpecularMagneticOldStrategy.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "MultiLayer.h"
-#include "Slice.h"
-#include "WavevectorInfo.h"
+#include "Core/Multilayer/SpecularMagneticOldStrategy.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/Slice.h"
+#include "Core/Vector/WavevectorInfo.h"
 #include <Eigen/LU>
 
 namespace
diff --git a/Core/Multilayer/SpecularMagneticOldStrategy.h b/Core/Multilayer/SpecularMagneticOldStrategy.h
index 6285df220d9008a788b7eed0171b365d8652780b..563ca77b592a5568317d64fe70db465c51ab7935 100644
--- a/Core/Multilayer/SpecularMagneticOldStrategy.h
+++ b/Core/Multilayer/SpecularMagneticOldStrategy.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARMAGNETICOLDSTRATEGY_H
 #define SPECULARMAGNETICOLDSTRATEGY_H
 
-#include "ISpecularStrategy.h"
-#include "MatrixRTCoefficients.h"
-#include "Vectors3D.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
+#include "Core/Multilayer/MatrixRTCoefficients.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Multilayer/SpecularMagneticStrategy.cpp b/Core/Multilayer/SpecularMagneticStrategy.cpp
index 84b3ca523361ce9ba5522b74fd189be8303d15f4..439b20358ba5ca77c7d86fc14c6d3c382dedcd7f 100644
--- a/Core/Multilayer/SpecularMagneticStrategy.cpp
+++ b/Core/Multilayer/SpecularMagneticStrategy.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SpecularMagneticStrategy.h"
-#include "KzComputation.h"
-#include "PhysicalConstants.h"
-#include "Slice.h"
+#include "Core/Multilayer/SpecularMagneticStrategy.h"
+#include "Core/Multilayer/KzComputation.h"
+#include "Core/Basics/PhysicalConstants.h"
+#include "Core/Computation/Slice.h"
 
 namespace
 {
diff --git a/Core/Multilayer/SpecularMagneticStrategy.h b/Core/Multilayer/SpecularMagneticStrategy.h
index 257fe4cd521708ac1970055b23787ee062837e5b..8d5c6b8f80beaf5663d9f80d08748f8f956c3146 100644
--- a/Core/Multilayer/SpecularMagneticStrategy.h
+++ b/Core/Multilayer/SpecularMagneticStrategy.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARMAGNETICSTRATEGY_H
 #define SPECULARMAGNETICSTRATEGY_H
 
-#include "ISpecularStrategy.h"
-#include "MatrixRTCoefficients_v2.h"
-#include "Vectors3D.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
+#include "Core/Multilayer/MatrixRTCoefficients_v2.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Multilayer/SpecularScalarNCStrategy.cpp b/Core/Multilayer/SpecularScalarNCStrategy.cpp
index 730deaa10a578516ceb7bf25a17694e33652b461..f60202d11698699880097a7f35653f422eaf59ce 100644
--- a/Core/Multilayer/SpecularScalarNCStrategy.cpp
+++ b/Core/Multilayer/SpecularScalarNCStrategy.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SpecularScalarNCStrategy.h"
+#include "Core/Multilayer/SpecularScalarNCStrategy.h"
 #include <Eigen/Dense>
 
 Eigen::Vector2cd SpecularScalarNCStrategy::transition(complex_t kzi, complex_t kzi1, double sigma,
diff --git a/Core/Multilayer/SpecularScalarNCStrategy.h b/Core/Multilayer/SpecularScalarNCStrategy.h
index a49c45e241f2c77e8d31e80d43f75104f9c5c439..0bd98c60ba50c1c30b1cbffbdd84671a9b1755c5 100644
--- a/Core/Multilayer/SpecularScalarNCStrategy.h
+++ b/Core/Multilayer/SpecularScalarNCStrategy.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARSCALARNCSTRATEGY_H
 #define SPECULARSCALARNCSTRATEGY_H
 
-#include "SpecularScalarStrategy.h"
+#include "Core/Multilayer/SpecularScalarStrategy.h"
 
 class Slice;
 
diff --git a/Core/Multilayer/SpecularScalarStrategy.cpp b/Core/Multilayer/SpecularScalarStrategy.cpp
index 05c74960049b93506667699e3e3492554d05d91e..fe11f647fd3c15e1d83d3d10fc77b0431e6a3026 100644
--- a/Core/Multilayer/SpecularScalarStrategy.cpp
+++ b/Core/Multilayer/SpecularScalarStrategy.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SpecularScalarStrategy.h"
-#include "KzComputation.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "Slice.h"
+#include "Core/Multilayer/SpecularScalarStrategy.h"
+#include "Core/Multilayer/KzComputation.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Computation/Slice.h"
 #include <Eigen/Dense>
 #include <stdexcept>
 
diff --git a/Core/Multilayer/SpecularScalarStrategy.h b/Core/Multilayer/SpecularScalarStrategy.h
index c601b5f912ce4d0bd510918c0f5a9f8262044e09..09a7caf49503e31faf690d55d5f57ab0818707ae 100644
--- a/Core/Multilayer/SpecularScalarStrategy.h
+++ b/Core/Multilayer/SpecularScalarStrategy.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARSCALARSTRATEGY_H
 #define SPECULARSCALARSTRATEGY_H
 
-#include "ISpecularStrategy.h"
-#include "ScalarRTCoefficients.h"
-#include "Vectors3D.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
+#include "Core/Multilayer/ScalarRTCoefficients.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Multilayer/SpecularScalarTanhStrategy.cpp b/Core/Multilayer/SpecularScalarTanhStrategy.cpp
index b27e741434c3281fe070dea2ab994fd51203bedc..e38220c993c27c1857b6de9674e42995c8921001 100644
--- a/Core/Multilayer/SpecularScalarTanhStrategy.cpp
+++ b/Core/Multilayer/SpecularScalarTanhStrategy.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SpecularScalarTanhStrategy.h"
-#include "MathConstants.h"
-#include "MathFunctions.h"
+#include "Core/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
 #include <Eigen/Dense>
 
 namespace
diff --git a/Core/Multilayer/SpecularScalarTanhStrategy.h b/Core/Multilayer/SpecularScalarTanhStrategy.h
index 7312cd680bd22f91b237fd90dfcebb5e79cc8394..8230111a2ba67e361eba3cd7b6e3f2adb5902d5b 100644
--- a/Core/Multilayer/SpecularScalarTanhStrategy.h
+++ b/Core/Multilayer/SpecularScalarTanhStrategy.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARSCALARTANHSTRATEGY_H
 #define SPECULARSCALARTANHSTRATEGY_H
 
-#include "SpecularScalarStrategy.h"
+#include "Core/Multilayer/SpecularScalarStrategy.h"
 
 class Slice;
 
diff --git a/Core/Multilayer/SpecularStrategyBuilder.cpp b/Core/Multilayer/SpecularStrategyBuilder.cpp
index ff0c3681a789fd7cc316b9a3f6b12bd53f93ee8f..576e90e9b43acf132dbaba1d1f664b1f53e26cb7 100644
--- a/Core/Multilayer/SpecularStrategyBuilder.cpp
+++ b/Core/Multilayer/SpecularStrategyBuilder.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SpecularStrategyBuilder.h"
-#include "MultiLayerUtils.h"
-#include "SpecularMagneticStrategy.h"
-#include "SpecularScalarNCStrategy.h"
-#include "SpecularScalarTanhStrategy.h"
+#include "Core/Multilayer/SpecularStrategyBuilder.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Multilayer/SpecularMagneticStrategy.h"
+#include "Core/Multilayer/SpecularScalarNCStrategy.h"
+#include "Core/Multilayer/SpecularScalarTanhStrategy.h"
 
 std::unique_ptr<ISpecularStrategy> SpecularStrategyBuilder::build(const MultiLayer& sample,
                                                                   const bool magnetic)
diff --git a/Core/Multilayer/SpecularStrategyBuilder.h b/Core/Multilayer/SpecularStrategyBuilder.h
index e19d2c5aec37dc10363f7fc04c63f49b20cb195d..991742c29b88053ffd4390ed9010101c4ff6dc88 100644
--- a/Core/Multilayer/SpecularStrategyBuilder.h
+++ b/Core/Multilayer/SpecularStrategyBuilder.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARSTRATEGYBUILDER_H
 #define SPECULARSTRATEGYBUILDER_H
 
-#include "ISpecularStrategy.h"
-#include "MultiLayer.h"
-#include "RoughnessModels.h"
+#include "Core/Multilayer/ISpecularStrategy.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Multilayer/RoughnessModels.h"
 
 class SpecularStrategyBuilder
 {
diff --git a/Core/Parametrization/DistributionHandler.cpp b/Core/Parametrization/DistributionHandler.cpp
index 6a1b552dca1061cc2c78dd540c78e0a61f1e1d4b..439a3b1f8e7e982673e61085937f6a6b329485cf 100644
--- a/Core/Parametrization/DistributionHandler.cpp
+++ b/Core/Parametrization/DistributionHandler.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "DistributionHandler.h"
-#include "Distributions.h"
-#include "Exceptions.h"
-#include "ParameterPool.h"
-#include "ParameterSample.h"
+#include "Core/Parametrization/DistributionHandler.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/ParameterSample.h"
 
 DistributionHandler::DistributionHandler() : m_nbr_combinations(1)
 {
diff --git a/Core/Parametrization/DistributionHandler.h b/Core/Parametrization/DistributionHandler.h
index 8cda348e02502353d66bc531b45df04fbef412ee..1f8243281c37fe7961e9d04e8816387f558ca2c3 100644
--- a/Core/Parametrization/DistributionHandler.h
+++ b/Core/Parametrization/DistributionHandler.h
@@ -15,7 +15,7 @@
 #ifndef DISTRIBUTIONHANDLER_H
 #define DISTRIBUTIONHANDLER_H
 
-#include "ParameterDistribution.h"
+#include "Core/Parametrization/ParameterDistribution.h"
 #include <vector>
 
 //! Provides the functionality to average over parameter distributions with weights.
diff --git a/Core/Parametrization/Distributions.cpp b/Core/Parametrization/Distributions.cpp
index fa52c8bb6f5d68f33d9d21bc88ade9bb56bac1e0..3fdae79e39e09d9474c0a3fab859e25e0942775e 100644
--- a/Core/Parametrization/Distributions.cpp
+++ b/Core/Parametrization/Distributions.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "Distributions.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "ParameterPool.h"
-#include "ParameterSample.h"
-#include "RealParameter.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 #include <cmath>
 #include <limits>
diff --git a/Core/Parametrization/Distributions.h b/Core/Parametrization/Distributions.h
index 2fe5275aa005a9799851735ada659d4eea149424..3e7971c162bf7614211aaded92f449e7fc4a95ed 100644
--- a/Core/Parametrization/Distributions.h
+++ b/Core/Parametrization/Distributions.h
@@ -15,9 +15,9 @@
 #ifndef DISTRIBUTIONS_H
 #define DISTRIBUTIONS_H
 
-#include "ICloneable.h"
-#include "INode.h"
-#include "RealLimits.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
+#include "Fit/Tools/RealLimits.h"
 #include <vector>
 
 class ParameterSample;
diff --git a/Core/Parametrization/INode.cpp b/Core/Parametrization/INode.cpp
index e8ab3e1e3718c767fca8d409b77900255b536a48..c295bc310deaf702dd400415583f7a14838eb90c 100644
--- a/Core/Parametrization/INode.cpp
+++ b/Core/Parametrization/INode.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "INode.h"
-#include "Exceptions.h"
-#include "IterationStrategy.h"
-#include "NodeIterator.h"
-#include "NodeUtils.h"
-#include "ParameterPool.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/IterationStrategy.h"
+#include "Core/Parametrization/NodeIterator.h"
+#include "Core/Parametrization/NodeUtils.h"
+#include "Core/Parametrization/ParameterPool.h"
 #include <algorithm>
 
 INode::INode() : m_parent(nullptr) {}
diff --git a/Core/Parametrization/INode.h b/Core/Parametrization/INode.h
index c064e2f3794428ff1272d925e63bcec51aa4ce3a..fdc92c0c5688f85ba37894a0ce5759e891ae9edc 100644
--- a/Core/Parametrization/INode.h
+++ b/Core/Parametrization/INode.h
@@ -15,8 +15,8 @@
 #ifndef INODE_H
 #define INODE_H
 
-#include "INodeVisitor.h"
-#include "IParameterized.h"
+#include "Core/Parametrization/INodeVisitor.h"
+#include "Core/Parametrization/IParameterized.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Parametrization/INodeVisitor.cpp b/Core/Parametrization/INodeVisitor.cpp
index 4f4a1c719ca657e6b9e82f286deb977f3c827cbd..da2315b912c0a6aa8991a460f8cc34b838d753c4 100644
--- a/Core/Parametrization/INodeVisitor.cpp
+++ b/Core/Parametrization/INodeVisitor.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IterationStrategy.h"
-#include "NodeIterator.h"
+#include "Core/Parametrization/IterationStrategy.h"
+#include "Core/Parametrization/NodeIterator.h"
 
 void VisitNodesPreorder(const INode& node, INodeVisitor& visitor)
 {
diff --git a/Core/Parametrization/INodeVisitor.h b/Core/Parametrization/INodeVisitor.h
index 1ee47bd6aaf1948e1c45805763dcc9f361cb4f43..fc5d7e288111757fe934cff30ac8f80f287ab639 100644
--- a/Core/Parametrization/INodeVisitor.h
+++ b/Core/Parametrization/INodeVisitor.h
@@ -15,7 +15,7 @@
 #ifndef INODEVISITOR_H
 #define INODEVISITOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class BasicLattice;
 class Beam;
diff --git a/Core/Parametrization/IParameter.h b/Core/Parametrization/IParameter.h
index 03f3313f0c7f6273e7755051b3c20b6010538e16..e0ab288b0ec57842a2db5cf367c26b439848af31 100644
--- a/Core/Parametrization/IParameter.h
+++ b/Core/Parametrization/IParameter.h
@@ -15,7 +15,7 @@
 #ifndef IPARAMETER_H
 #define IPARAMETER_H
 
-#include "INamed.h"
+#include "Core/Basics/INamed.h"
 #include <functional>
 #include <stdexcept>
 #include <string>
diff --git a/Core/Parametrization/IParameterized.cpp b/Core/Parametrization/IParameterized.cpp
index 4c3ffc359f8c8037e29b9831eec6645606140fb7..54362ce9606b67b42db1daab7a7b8c4a852eeba4 100644
--- a/Core/Parametrization/IParameterized.cpp
+++ b/Core/Parametrization/IParameterized.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "IParameterized.h"
-#include "Exceptions.h"
-#include "ParameterPool.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <iostream>
 #include <memory>
 #include <sstream>
diff --git a/Core/Parametrization/IParameterized.h b/Core/Parametrization/IParameterized.h
index 9fc8b1681683b0dd1571040b9ddabd463f28bb92..56f7c6051eef85e811aa6f8eb6acc0fdfa009700 100644
--- a/Core/Parametrization/IParameterized.h
+++ b/Core/Parametrization/IParameterized.h
@@ -15,9 +15,9 @@
 #ifndef IPARAMETERIZED_H
 #define IPARAMETERIZED_H
 
-#include "BornAgainNamespace.h"
-#include "INamed.h"
-#include "Vectors3D.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/INamed.h"
+#include "Core/Vector/Vectors3D.h"
 
 class RealLimits;
 class ParameterPool;
diff --git a/Core/Parametrization/IterationStrategy.cpp b/Core/Parametrization/IterationStrategy.cpp
index 08eda513c9dda3e98b3dc6c8e6d37019623bbe93..e51948cd6f9c505723932c2617d9c5a8310b15b9 100644
--- a/Core/Parametrization/IterationStrategy.cpp
+++ b/Core/Parametrization/IterationStrategy.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IterationStrategy.h"
-#include "Exceptions.h"
-#include "NodeIterator.h"
+#include "Core/Parametrization/IterationStrategy.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/NodeIterator.h"
 
 PreorderStrategy::PreorderStrategy() {}
 
diff --git a/Core/Parametrization/IterationStrategy.h b/Core/Parametrization/IterationStrategy.h
index 1df873fe64f05a7f462e914620a341fcf4e19234..dd55b700dbaa6af113f78a15e5321f79209edcbe 100644
--- a/Core/Parametrization/IterationStrategy.h
+++ b/Core/Parametrization/IterationStrategy.h
@@ -15,7 +15,7 @@
 #ifndef ITERATIONSTRATEGY_H
 #define ITERATIONSTRATEGY_H
 
-#include "ISample.h"
+#include "Core/Scattering/ISample.h"
 
 class IteratorMemento;
 
diff --git a/Core/Parametrization/NodeIterator.cpp b/Core/Parametrization/NodeIterator.cpp
index ba7b6e987259bc133f43b6df6bef2d684ef26525..ad3bcea0fd6ead22b9125445f1587df262edee6e 100644
--- a/Core/Parametrization/NodeIterator.cpp
+++ b/Core/Parametrization/NodeIterator.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "NodeIterator.h"
+#include "Core/Parametrization/NodeIterator.h"
 
 IteratorState::IteratorState(const INode* single_element) : m_position(0)
 {
diff --git a/Core/Parametrization/NodeIterator.h b/Core/Parametrization/NodeIterator.h
index 70563ae4d0248b9a10bc8b67deb62cc628de7122..9576cfdb02ef0e39cc590772942e28440c82e4e8 100644
--- a/Core/Parametrization/NodeIterator.h
+++ b/Core/Parametrization/NodeIterator.h
@@ -15,7 +15,7 @@
 #ifndef NODEITERATOR_H
 #define NODEITERATOR_H
 
-#include "INode.h"
+#include "Core/Parametrization/INode.h"
 #include <ostream>
 #include <stack>
 #include <vector>
diff --git a/Core/Parametrization/NodeUtils.cpp b/Core/Parametrization/NodeUtils.cpp
index e7bd92f6673f3fe7e6b5f673bac53517e3072d0c..9be4e9f23451621f7893af1e783940821a2ed2d4 100644
--- a/Core/Parametrization/NodeUtils.cpp
+++ b/Core/Parametrization/NodeUtils.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "NodeUtils.h"
-#include "Exceptions.h"
-#include "INode.h"
-#include "IterationStrategy.h"
-#include "NodeIterator.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
+#include "Core/Parametrization/NodeUtils.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Parametrization/IterationStrategy.h"
+#include "Core/Parametrization/NodeIterator.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <algorithm>
 #include <functional>
 #include <iterator>
diff --git a/Core/Parametrization/NodeUtils.h b/Core/Parametrization/NodeUtils.h
index c3ec2625f00fde7df70c3bb4af9b7d48044a4a2a..f46a52215ba7a46eca400f84da90a7206384fd45 100644
--- a/Core/Parametrization/NodeUtils.h
+++ b/Core/Parametrization/NodeUtils.h
@@ -15,7 +15,7 @@
 #ifndef NODEUTILS_H
 #define NODEUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 class INode;
diff --git a/Core/Parametrization/ParameterDistribution.cpp b/Core/Parametrization/ParameterDistribution.cpp
index 257c5b8b14f43499d047dfb01d7877fa458d9908..7717387c40f4aa702b6256829a0b6f70cb06b2c6 100644
--- a/Core/Parametrization/ParameterDistribution.cpp
+++ b/Core/Parametrization/ParameterDistribution.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ParameterDistribution.h"
-#include "Distributions.h"
-#include "Exceptions.h"
-#include "ParameterSample.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/ParameterSample.h"
 
 ParameterDistribution::ParameterDistribution(const std::string& par_name,
                                              const IDistribution1D& distribution,
diff --git a/Core/Parametrization/ParameterDistribution.h b/Core/Parametrization/ParameterDistribution.h
index 94538cdc2e74b49d8887640c047419b2461b4ca8..2b2c58736786ff338f00179b82f9044b6da21cd5 100644
--- a/Core/Parametrization/ParameterDistribution.h
+++ b/Core/Parametrization/ParameterDistribution.h
@@ -15,9 +15,9 @@
 #ifndef PARAMETERDISTRIBUTION_H
 #define PARAMETERDISTRIBUTION_H
 
-#include "IParameterized.h"
-#include "ParameterSample.h"
-#include "RealLimits.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Fit/Tools/RealLimits.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Parametrization/ParameterPattern.cpp b/Core/Parametrization/ParameterPattern.cpp
index 7f478ab4fb6efbce1dbccde8e4356a52dfe94308..f0a6344c6329e5e9f96a9dbfdfbb1e119a4caeb8 100644
--- a/Core/Parametrization/ParameterPattern.cpp
+++ b/Core/Parametrization/ParameterPattern.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ParameterPattern.h"
+#include "Core/Parametrization/ParameterPattern.h"
 
 ParameterPattern& ParameterPattern::beginsWith(std::string start_type)
 {
diff --git a/Core/Parametrization/ParameterPattern.h b/Core/Parametrization/ParameterPattern.h
index 4ea88b3ae1cb59e5fa7a607ed725bf0a36960b0c..ee7ca7237ac69eee8d350513108f2441fe6de18b 100644
--- a/Core/Parametrization/ParameterPattern.h
+++ b/Core/Parametrization/ParameterPattern.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERPATTERN_H
 #define PARAMETERPATTERN_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 //! Helper class for constructing parameter patterns.
diff --git a/Core/Parametrization/ParameterPool.cpp b/Core/Parametrization/ParameterPool.cpp
index fbeab5b2f01b76c713b466df90b402049be0c573..5ff803078ac3ab163076a7a5cf96ee9052d22b29 100644
--- a/Core/Parametrization/ParameterPool.cpp
+++ b/Core/Parametrization/ParameterPool.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParameterPool.h"
-#include "Exceptions.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
-#include "StringUtils.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Basics/Exceptions.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Fit/Tools/StringUtils.h"
 #include <algorithm>
 #include <cassert>
 #include <iostream>
diff --git a/Core/Parametrization/ParameterPool.h b/Core/Parametrization/ParameterPool.h
index 8f41056d2c161803318a2676bf1058dd0c85a907..4fcdd21f078bb1d031c3c6dd295c8eb2f65ebaba 100644
--- a/Core/Parametrization/ParameterPool.h
+++ b/Core/Parametrization/ParameterPool.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERPOOL_H
 #define PARAMETERPOOL_H
 
-#include "ICloneable.h"
+#include "Core/Basics/ICloneable.h"
 #include <ostream>
 #include <string>
 #include <vector>
diff --git a/Core/Parametrization/ParameterUtils.cpp b/Core/Parametrization/ParameterUtils.cpp
index 59ce8a38b9ef7c7b9c4bb7a14fce7afc758c309a..74804bc3799d460cbc8a2ac4e4c759ed87b19f71 100644
--- a/Core/Parametrization/ParameterUtils.cpp
+++ b/Core/Parametrization/ParameterUtils.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "ParameterUtils.h"
-#include "BornAgainNamespace.h"
-#include "ParameterDistribution.h"
-#include "ParameterPool.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "RealParameter.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Parametrization/RealParameter.h"
 
 namespace
 {
diff --git a/Core/Parametrization/ParameterUtils.h b/Core/Parametrization/ParameterUtils.h
index ffbf55c464f18c3f0a2ad2464948d689428315c9..8aaec132dd14cc40c43f5b053fa32c51f24b771d 100644
--- a/Core/Parametrization/ParameterUtils.h
+++ b/Core/Parametrization/ParameterUtils.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERUTILS_H
 #define PARAMETERUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 class ParameterDistribution;
diff --git a/Core/Parametrization/RangedDistributions.cpp b/Core/Parametrization/RangedDistributions.cpp
index 265cef9f793558a94605e8ad3f62b033be019dcb..a8b13638d13a457c48324e8b73cdcd6c70a749b2 100644
--- a/Core/Parametrization/RangedDistributions.cpp
+++ b/Core/Parametrization/RangedDistributions.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "RangedDistributions.h"
-#include "Distributions.h"
-#include "ParameterSample.h"
-#include "PythonFormatting.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Export/PythonFormatting.h"
 #include <limits>
 
 namespace
diff --git a/Core/Parametrization/RangedDistributions.h b/Core/Parametrization/RangedDistributions.h
index e122cebb1284002f4a465874d8e01d3b5286060f..318537349484d98eed25a36d99de9ef51496f61e 100644
--- a/Core/Parametrization/RangedDistributions.h
+++ b/Core/Parametrization/RangedDistributions.h
@@ -15,8 +15,8 @@
 #ifndef RANGEDDISTRIBUTIONS_H
 #define RANGEDDISTRIBUTIONS_H
 
-#include "ICloneable.h"
-#include "RealLimits.h"
+#include "Core/Basics/ICloneable.h"
+#include "Fit/Tools/RealLimits.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Parametrization/RealParameter.cpp b/Core/Parametrization/RealParameter.cpp
index ea000ff7d8b4128b5cd49a6d41cf71fcfab7e4cd..72d8f1a109418deef81d7a51782697c32d108b26 100644
--- a/Core/Parametrization/RealParameter.cpp
+++ b/Core/Parametrization/RealParameter.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RealParameter.h"
-#include "BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Basics/BornAgainNamespace.h"
 #include <sstream>
 
 RealParameter::RealParameter(const std::string& name, double* par, const std::string& parent_name,
diff --git a/Core/Parametrization/RealParameter.h b/Core/Parametrization/RealParameter.h
index 43077f10efa8c9034d1ba3185d80c7e16417e27c..d3b85f090a955cb9b3159771a02c4ec1c1b024db 100644
--- a/Core/Parametrization/RealParameter.h
+++ b/Core/Parametrization/RealParameter.h
@@ -15,10 +15,10 @@
 #ifndef REALPARAMETER_H
 #define REALPARAMETER_H
 
-#include "Attributes.h"
-#include "IParameter.h"
-#include "RealLimits.h"
-#include "Unit.h"
+#include "Fit/Tools/Attributes.h"
+#include "Core/Parametrization/IParameter.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/Unit.h"
 #include <string>
 
 class ParameterPool;
diff --git a/Core/Parametrization/SimulationOptions.cpp b/Core/Parametrization/SimulationOptions.cpp
index d6a87e0549c6ed2411d2de6a2219fb5fd453b502..7db6bb0fe73e773673b1cf4a100861fe8a3bf80c 100644
--- a/Core/Parametrization/SimulationOptions.cpp
+++ b/Core/Parametrization/SimulationOptions.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SimulationOptions.h"
+#include "Core/Parametrization/SimulationOptions.h"
 #include <stdexcept>
 #include <thread>
 
diff --git a/Core/Parametrization/SimulationOptions.h b/Core/Parametrization/SimulationOptions.h
index fe1108a304142e4d938df39a69ec3320381076e0..4ad34df92d0b5128ddac8a819e19ae8d6fcf63c6 100644
--- a/Core/Parametrization/SimulationOptions.h
+++ b/Core/Parametrization/SimulationOptions.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONOPTIONS_H
 #define SIMULATIONOPTIONS_H
 
-#include "ThreadInfo.h"
+#include "Core/Parametrization/ThreadInfo.h"
 #include <cstddef>
 
 using std::size_t;
diff --git a/Core/Parametrization/ThreadInfo.h b/Core/Parametrization/ThreadInfo.h
index ea8bd386092ebc73d08f887d68a267815933180d..e859fe04d6bfe05828d1ff59fdfcaa123d94dfa9 100644
--- a/Core/Parametrization/ThreadInfo.h
+++ b/Core/Parametrization/ThreadInfo.h
@@ -15,7 +15,7 @@
 #ifndef THREADINFO_H
 #define THREADINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Information to run simulation with dedicated number of threads.
 //! @ingroup simulation
diff --git a/Core/Parametrization/Unit.cpp b/Core/Parametrization/Unit.cpp
index 63a2c965aeab6f68dc032eea4f5b5a72a75b6b35..c352fccaec8fc575110be9af523cb9738646097d 100644
--- a/Core/Parametrization/Unit.cpp
+++ b/Core/Parametrization/Unit.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Unit.h"
-#include "BornAgainNamespace.h"
+#include "Core/Parametrization/Unit.h"
+#include "Core/Basics/BornAgainNamespace.h"
 #include <stdexcept>
 
 void Unit::setUnit(const std::string& name)
diff --git a/Core/Parametrization/Unit.h b/Core/Parametrization/Unit.h
index 24fa93780891dd380bdf60363741691c03008ab9..9d26e3f7ddfc2b0caa3440154c0db2d2462f5b98 100644
--- a/Core/Parametrization/Unit.h
+++ b/Core/Parametrization/Unit.h
@@ -15,7 +15,7 @@
 #ifndef UNIT_H
 #define UNIT_H
 
-#include "INamed.h"
+#include "Core/Basics/INamed.h"
 #include <string>
 
 //! A physical unit.
diff --git a/Core/Particle/Crystal.cpp b/Core/Particle/Crystal.cpp
index 320943fa0e1f1f0b450f55934984996a48d99f52..b5e7b5b2c2dce312b28c40b6e5958cde7167ac3a 100644
--- a/Core/Particle/Crystal.cpp
+++ b/Core/Particle/Crystal.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Crystal.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCrystal.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Particle/FormFactorCrystal.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
 
 Crystal::Crystal(const IParticle& lattice_basis, const Lattice& lattice)
     : m_lattice(lattice), m_position_variance(0.0)
diff --git a/Core/Particle/Crystal.h b/Core/Particle/Crystal.h
index 30a9f80cb459fc97d8e5af6112bafe25bca55b0a..d15d2802d6043bd779010bdfdbb52988ece67c38 100644
--- a/Core/Particle/Crystal.h
+++ b/Core/Particle/Crystal.h
@@ -15,9 +15,9 @@
 #ifndef CRYSTAL_H
 #define CRYSTAL_H
 
-#include "IClusteredParticles.h"
-#include "Lattice.h"
-#include "Vectors3D.h"
+#include "Core/Particle/IClusteredParticles.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Vector/Vectors3D.h"
 
 //! A crystal structure with a ParticleComposition as a basis.
 //! Used in MesoCrystal, where it is given an outer shape.
diff --git a/Core/Particle/FormFactorCoreShell.cpp b/Core/Particle/FormFactorCoreShell.cpp
index 60290a739961f4d31a8bec321a92d095950ba63e..37c524fd90932e72f596545173bfade7afb3022b 100644
--- a/Core/Particle/FormFactorCoreShell.cpp
+++ b/Core/Particle/FormFactorCoreShell.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCoreShell.h"
-#include "BornAgainNamespace.h"
+#include "Core/Particle/FormFactorCoreShell.h"
+#include "Core/Basics/BornAgainNamespace.h"
 
 FormFactorCoreShell::FormFactorCoreShell(IFormFactor* core, IFormFactor* shell)
     : mP_core(core), mP_shell(shell)
diff --git a/Core/Particle/FormFactorCoreShell.h b/Core/Particle/FormFactorCoreShell.h
index 51df6228f7dc85eb50a134d5df01aa02bcc01591..9a132771ae6525ad816012a506f5c664c5d950a9 100644
--- a/Core/Particle/FormFactorCoreShell.h
+++ b/Core/Particle/FormFactorCoreShell.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORCORESHELL_H
 #define FORMFACTORCORESHELL_H
 
-#include "IFormFactor.h"
+#include "Core/Scattering/IFormFactor.h"
 
 #include <memory>
 
diff --git a/Core/Particle/FormFactorCrystal.cpp b/Core/Particle/FormFactorCrystal.cpp
index 1095df05490ae9781b858c9ae6b826aacce5b649..0beaceafc4fe71f8aa9d8a770c01d727472143d1 100644
--- a/Core/Particle/FormFactorCrystal.cpp
+++ b/Core/Particle/FormFactorCrystal.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorCrystal.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "WavevectorInfo.h"
+#include "Core/Particle/FormFactorCrystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 FormFactorCrystal::FormFactorCrystal(const Lattice& lattice, const IFormFactor& basis_form_factor,
                                      const IFormFactor& meso_form_factor, double position_variance)
diff --git a/Core/Particle/FormFactorCrystal.h b/Core/Particle/FormFactorCrystal.h
index b4b36a4ef882da5bdaf7cf521f9e53b849a90c41..47887bb2858283206d7430452e413940dbf5b420 100644
--- a/Core/Particle/FormFactorCrystal.h
+++ b/Core/Particle/FormFactorCrystal.h
@@ -15,8 +15,8 @@
 #ifndef FORMFACTORCRYSTAL_H
 #define FORMFACTORCRYSTAL_H
 
-#include "IFormFactorBorn.h"
-#include "Lattice.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Lattice/Lattice.h"
 
 //! The form factor of a MesoCrystal.
 //! @ingroup formfactors
diff --git a/Core/Particle/FormFactorWeighted.cpp b/Core/Particle/FormFactorWeighted.cpp
index 9b19919fca9621ffb3cad387cbf7fffc90c73ae1..9bbb5c91777fe1f5a7b949b5b542b1073e40cbd8 100644
--- a/Core/Particle/FormFactorWeighted.cpp
+++ b/Core/Particle/FormFactorWeighted.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorWeighted.h"
-#include "Algorithms.h"
-#include "BornAgainNamespace.h"
+#include "Core/Particle/FormFactorWeighted.h"
+#include "Core/Basics/Algorithms.h"
+#include "Core/Basics/BornAgainNamespace.h"
 
 FormFactorWeighted::FormFactorWeighted()
 {
diff --git a/Core/Particle/FormFactorWeighted.h b/Core/Particle/FormFactorWeighted.h
index 36cd7cac449973303b51b0451fd6e6c0815104c8..25fe56172f7013e3a406e0c1643b90198da242d0 100644
--- a/Core/Particle/FormFactorWeighted.h
+++ b/Core/Particle/FormFactorWeighted.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORWEIGHTED_H
 #define FORMFACTORWEIGHTED_H
 
-#include "IFormFactor.h"
+#include "Core/Scattering/IFormFactor.h"
 
 //! Coherent sum of different scalar IFormFactor's with different weights.
 //!
diff --git a/Core/Particle/HomogeneousRegion.h b/Core/Particle/HomogeneousRegion.h
index 30de946d28fa9de45d32f1e3c97c4c8de6ccb032..bdeea20e7e8f730ab6fc5194bc1c65758e68a38a 100644
--- a/Core/Particle/HomogeneousRegion.h
+++ b/Core/Particle/HomogeneousRegion.h
@@ -15,7 +15,7 @@
 #ifndef HOMOGENEOUSREGION_H
 #define HOMOGENEOUSREGION_H
 
-#include "Material.h"
+#include "Core/Material/Material.h"
 
 //! Struct that contains information on a single homogeneous region of a particle inside
 //! a single layer.
diff --git a/Core/Particle/IAbstractParticle.cpp b/Core/Particle/IAbstractParticle.cpp
index 36165da2abbe521f6f4672f4007447f615031999..7f3afc36c058719f9f38f79263bbf7788b6cb576 100644
--- a/Core/Particle/IAbstractParticle.cpp
+++ b/Core/Particle/IAbstractParticle.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IAbstractParticle.h"
+#include "Core/Particle/IAbstractParticle.h"
 
 IAbstractParticle::IAbstractParticle() : m_abundance(1.0) {}
 
diff --git a/Core/Particle/IAbstractParticle.h b/Core/Particle/IAbstractParticle.h
index c2e7183ba429fb06e1932f031bba8f2655cbd778..ccb21ce1f3fb1930b39edb597738e788cb732d20 100644
--- a/Core/Particle/IAbstractParticle.h
+++ b/Core/Particle/IAbstractParticle.h
@@ -15,8 +15,8 @@
 #ifndef IABSTRACTPARTICLE_H
 #define IABSTRACTPARTICLE_H
 
-#include "ISample.h"
-#include "Vectors3D.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Vector/Vectors3D.h"
 
 class IRotation;
 
diff --git a/Core/Particle/IClusteredParticles.h b/Core/Particle/IClusteredParticles.h
index e8f0da1c85e6d09e1ac5c14c281ae2a4f1db6b14..296c0e8055bd41f15f373157970d77f0ae91e07f 100644
--- a/Core/Particle/IClusteredParticles.h
+++ b/Core/Particle/IClusteredParticles.h
@@ -15,9 +15,9 @@
 #ifndef ICLUSTEREDPARTICLES_H
 #define ICLUSTEREDPARTICLES_H
 
-#include "HomogeneousRegion.h"
-#include "ISample.h"
-#include "Vectors3D.h"
+#include "Core/Particle/HomogeneousRegion.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Vector/Vectors3D.h"
 
 class IFormFactor;
 class IRotation;
diff --git a/Core/Particle/IParticle.cpp b/Core/Particle/IParticle.cpp
index 8dfde6c00e3801e842b37f2f5520335e32209a68..a525aa6e4c88761cd63b9bb9f87782c06a9c91fd 100644
--- a/Core/Particle/IParticle.cpp
+++ b/Core/Particle/IParticle.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "IParticle.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorDecoratorPositionFactor.h"
-#include "MultiLayer.h"
-#include "RealParameter.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/RealParameter.h"
 
 IFormFactor* IParticle::createFormFactor() const
 {
diff --git a/Core/Particle/IParticle.h b/Core/Particle/IParticle.h
index a9b6b12b920be7910d638cc6b6c595c3168db33e..168d1002e24f83c12c689f8ad0643da365e94840 100644
--- a/Core/Particle/IParticle.h
+++ b/Core/Particle/IParticle.h
@@ -15,12 +15,12 @@
 #ifndef IPARTICLE_H
 #define IPARTICLE_H
 
-#include "IAbstractParticle.h"
-#include "Rotations.h"
-#include "SafePointerVector.h"
-#include "SlicedParticle.h"
-#include "Vectors3D.h"
-#include "ZLimits.h"
+#include "Core/Particle/IAbstractParticle.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Tools/SafePointerVector.h"
+#include "Core/Particle/SlicedParticle.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Core/Particle/ZLimits.h"
 #include <memory>
 
 //! Vertical extension of a particle, specified by bottom and top z coordinate.
diff --git a/Core/Particle/MesoCrystal.cpp b/Core/Particle/MesoCrystal.cpp
index 3fc79f23adb32d451c495bdca9c9abb494bee596..f8575b6e0779532371c694415949d9a375de1112 100644
--- a/Core/Particle/MesoCrystal.cpp
+++ b/Core/Particle/MesoCrystal.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MesoCrystal.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorDecoratorPositionFactor.h"
-#include "FormFactorDecoratorRotation.h"
-#include "IClusteredParticles.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
+#include "Core/Particle/IClusteredParticles.h"
 
 MesoCrystal::MesoCrystal(const IClusteredParticles& particle_structure,
                          const IFormFactor& form_factor)
diff --git a/Core/Particle/MesoCrystal.h b/Core/Particle/MesoCrystal.h
index dbcffc62652e5dd6092a36f1dbb398081478d5a7..a11fc8683119b001dd692198e3437961e9177f55 100644
--- a/Core/Particle/MesoCrystal.h
+++ b/Core/Particle/MesoCrystal.h
@@ -15,7 +15,7 @@
 #ifndef MESOCRYSTAL_H
 #define MESOCRYSTAL_H
 
-#include "IParticle.h"
+#include "Core/Particle/IParticle.h"
 
 class IClusteredParticles;
 
diff --git a/Core/Particle/Particle.cpp b/Core/Particle/Particle.cpp
index 46ebfdd9f9fdc30aaa68e9d86f9db80d89745911..a437f586f79bdcaa0e49eaa936789f778cf4b675 100644
--- a/Core/Particle/Particle.cpp
+++ b/Core/Particle/Particle.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Particle.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorDecoratorPositionFactor.h"
-#include "MaterialFactoryFuncs.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
 
 Particle::Particle() : m_material(HomogeneousMaterial())
 {
diff --git a/Core/Particle/Particle.h b/Core/Particle/Particle.h
index 2aab0d8dd56c5dfd58934371932bad00e743ad20..65b04d313d946a7554bd83cb5d84ab4836113035 100644
--- a/Core/Particle/Particle.h
+++ b/Core/Particle/Particle.h
@@ -15,10 +15,10 @@
 #ifndef PARTICLE_H
 #define PARTICLE_H
 
-#include "FormFactorDecoratorMaterial.h"
-#include "FormFactorDecoratorRotation.h"
-#include "IParticle.h"
-#include "Material.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Material/Material.h"
 
 //! A particle with a form factor and refractive index.
 //! @ingroup samples
diff --git a/Core/Particle/ParticleComposition.cpp b/Core/Particle/ParticleComposition.cpp
index 8b8bc70478b6824627b8b4852b104dd6ab6eff67..40e319307a115700d5a940c5ecbba8f4c10029c1 100644
--- a/Core/Particle/ParticleComposition.cpp
+++ b/Core/Particle/ParticleComposition.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParticleComposition.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "FormFactorWeighted.h"
-#include "ParticleDistribution.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Particle/FormFactorWeighted.h"
+#include "Core/Particle/ParticleDistribution.h"
 
 ParticleComposition::ParticleComposition()
 {
diff --git a/Core/Particle/ParticleComposition.h b/Core/Particle/ParticleComposition.h
index 40a911ca4355067f3a3e1a5a398794a097072c6a..94e0b9e973a12e3e26623abf5998f4a97d35b59b 100644
--- a/Core/Particle/ParticleComposition.h
+++ b/Core/Particle/ParticleComposition.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLECOMPOSITION_H
 #define PARTICLECOMPOSITION_H
 
-#include "IParticle.h"
+#include "Core/Particle/IParticle.h"
 #include <memory>
 
 //! A composition of particles at fixed positions
diff --git a/Core/Particle/ParticleCoreShell.cpp b/Core/Particle/ParticleCoreShell.cpp
index f0ca80f84695aaffe1d5f9a60fb7d8065d7d9f9c..94b6a01b9f241106860a695fc9b6071b621577c4 100644
--- a/Core/Particle/ParticleCoreShell.cpp
+++ b/Core/Particle/ParticleCoreShell.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ParticleCoreShell.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCoreShell.h"
-#include "Particle.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Particle/FormFactorCoreShell.h"
+#include "Core/Particle/Particle.h"
 
 ParticleCoreShell::ParticleCoreShell(const Particle& shell, const Particle& core,
                                      kvector_t relative_core_position)
diff --git a/Core/Particle/ParticleCoreShell.h b/Core/Particle/ParticleCoreShell.h
index 796191f2ee6f5d1f9d08a926cb73b3bb084adb5b..766f6ab9e2fb1384ddaafaf5147112058bb4d1e5 100644
--- a/Core/Particle/ParticleCoreShell.h
+++ b/Core/Particle/ParticleCoreShell.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLECORESHELL_H
 #define PARTICLECORESHELL_H
 
-#include "IParticle.h"
+#include "Core/Particle/IParticle.h"
 
 class Particle;
 
diff --git a/Core/Particle/ParticleDistribution.cpp b/Core/Particle/ParticleDistribution.cpp
index 73fc59ed91d8420f103651efbfe70e1588c6f216..162449b7442dbeda56db596d994aad9935dabc23 100644
--- a/Core/Particle/ParticleDistribution.cpp
+++ b/Core/Particle/ParticleDistribution.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ParticleDistribution.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "Exceptions.h"
-#include "IParticle.h"
-#include "ParameterPool.h"
-#include "ParameterSample.h"
-#include "RealParameter.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <map>
 
 ParticleDistribution::ParticleDistribution(const IParticle& prototype,
diff --git a/Core/Particle/ParticleDistribution.h b/Core/Particle/ParticleDistribution.h
index d544b173cf026039364e2f1593211acfbea393e7..ed4afe35e930ae3122665078e011b3e6f6e834d4 100644
--- a/Core/Particle/ParticleDistribution.h
+++ b/Core/Particle/ParticleDistribution.h
@@ -15,9 +15,9 @@
 #ifndef PARTICLEDISTRIBUTION_H
 #define PARTICLEDISTRIBUTION_H
 
-#include "IAbstractParticle.h"
-#include "ParameterDistribution.h"
-#include "SafePointerVector.h"
+#include "Core/Particle/IAbstractParticle.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Tools/SafePointerVector.h"
 
 class IParticle;
 
diff --git a/Core/Particle/SlicedFormFactorList.cpp b/Core/Particle/SlicedFormFactorList.cpp
index 9201f3f0affe7172ca957098c55a9c3b96f7ab9b..5089cd9a2151f9640a81bb713af778f5daa04772 100644
--- a/Core/Particle/SlicedFormFactorList.cpp
+++ b/Core/Particle/SlicedFormFactorList.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SlicedFormFactorList.h"
-#include "IParticle.h"
-#include "MultiLayer.h"
-#include "Rotations.h"
-#include "Slice.h"
+#include "Core/Particle/SlicedFormFactorList.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Computation/Slice.h"
 #include <utility>
 
 namespace
diff --git a/Core/Particle/SlicedFormFactorList.h b/Core/Particle/SlicedFormFactorList.h
index e800af8583f5175b1d92723b168a2e806432cef6..5b52056eebac86dfd46551d81cc1c392a4678c2d 100644
--- a/Core/Particle/SlicedFormFactorList.h
+++ b/Core/Particle/SlicedFormFactorList.h
@@ -15,8 +15,8 @@
 #ifndef SLICEDFORMFACTORLIST_H
 #define SLICEDFORMFACTORLIST_H
 
-#include "HomogeneousRegion.h"
-#include "IFormFactor.h"
+#include "Core/Particle/HomogeneousRegion.h"
+#include "Core/Scattering/IFormFactor.h"
 #include <map>
 #include <memory>
 
diff --git a/Core/Particle/SlicedParticle.cpp b/Core/Particle/SlicedParticle.cpp
index 9459bde695fcba6a3d2d036c42ecf3cc24a1e5f3..2b4162f5987967c4436c32c8d155e4bfb42e9427 100644
--- a/Core/Particle/SlicedParticle.cpp
+++ b/Core/Particle/SlicedParticle.cpp
@@ -12,4 +12,4 @@
 //
 // ************************************************************************** //
 
-#include "SlicedParticle.h"
+#include "Core/Particle/SlicedParticle.h"
diff --git a/Core/Particle/SlicedParticle.h b/Core/Particle/SlicedParticle.h
index 3b8a6eacfc51b12dc3b6f4a3d2a514b6d2073bdd..e1ec9bbf2eda188da1934fb2978e67218a8c6aca 100644
--- a/Core/Particle/SlicedParticle.h
+++ b/Core/Particle/SlicedParticle.h
@@ -15,8 +15,8 @@
 #ifndef SLICEDPARTICLE_H
 #define SLICEDPARTICLE_H
 
-#include "HomogeneousRegion.h"
-#include "IFormFactor.h"
+#include "Core/Particle/HomogeneousRegion.h"
+#include "Core/Scattering/IFormFactor.h"
 #include <memory>
 
 //! Struct that contains information on a sliced particle.
diff --git a/Core/Particle/ZLimits.cpp b/Core/Particle/ZLimits.cpp
index 357b065a2a84018e0dc313b256f7c17ad2f9949c..4cc518de944b7faee11d8b587870c53ef1399d59 100644
--- a/Core/Particle/ZLimits.cpp
+++ b/Core/Particle/ZLimits.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ZLimits.h"
+#include "Core/Particle/ZLimits.h"
 #include <algorithm>
 #include <stdexcept>
 
diff --git a/Core/Particle/ZLimits.h b/Core/Particle/ZLimits.h
index 016d510f4f5f6594a89c0e25094553102474ef5a..3465f85c7dc1ef18a42624aed0dac85fd7724af6 100644
--- a/Core/Particle/ZLimits.h
+++ b/Core/Particle/ZLimits.h
@@ -15,7 +15,7 @@
 #ifndef ZLIMITS_H
 #define ZLIMITS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <iostream>
 
 //! Helper class that represents a onesided limit
diff --git a/Core/Scattering/IFormFactor.cpp b/Core/Scattering/IFormFactor.cpp
index cc1d6fc661706c1181ae13957c1854d53e1772ad..0e14f415aff02f1e95451283e6492639002355f8 100644
--- a/Core/Scattering/IFormFactor.cpp
+++ b/Core/Scattering/IFormFactor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "IFormFactor.h"
-#include "Exceptions.h"
-#include "FormFactorDecoratorPositionFactor.h"
-#include "FormFactorDecoratorRotation.h"
-#include "ILayerRTCoefficients.h"
-#include "Rotations.h"
-#include "WavevectorInfo.h"
+#include "Core/Scattering/IFormFactor.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Vector/WavevectorInfo.h"
 #include <memory>
 #include <utility>
 
diff --git a/Core/Scattering/IFormFactor.h b/Core/Scattering/IFormFactor.h
index f7bf5d10737f47287e097d27372da6c4867d0294..8c95eddc0f6ee0c7c7aa2ad524ffa40d06379c85 100644
--- a/Core/Scattering/IFormFactor.h
+++ b/Core/Scattering/IFormFactor.h
@@ -15,12 +15,12 @@
 #ifndef IFORMFACTOR_H
 #define IFORMFACTOR_H
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "ISample.h"
-#include "Material.h"
-#include "Vectors3D.h"
-#include "ZLimits.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Material/Material.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Core/Particle/ZLimits.h"
 
 class ILayerRTCoefficients;
 class IRotation;
diff --git a/Core/Scattering/IFormFactorBorn.cpp b/Core/Scattering/IFormFactorBorn.cpp
index 93437c967b4711a494a44168407d21fc02d79ed6..2062fd06302aa5fb1a6c17b16b1f381a1deda07e 100644
--- a/Core/Scattering/IFormFactorBorn.cpp
+++ b/Core/Scattering/IFormFactorBorn.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "IFormFactorBorn.h"
-#include "Algorithms.h"
-#include "Exceptions.h"
-#include "Rotations.h"
-#include "WavevectorInfo.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Basics/Algorithms.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Vector/WavevectorInfo.h"
 
 complex_t IFormFactorBorn::evaluate(const WavevectorInfo& wavevectors) const
 {
diff --git a/Core/Scattering/IFormFactorBorn.h b/Core/Scattering/IFormFactorBorn.h
index 7dc78b6fef784ad697895845dfa623b600c2da43..9b42b9895572b04fb3b44880eabcdb0963216dbd 100644
--- a/Core/Scattering/IFormFactorBorn.h
+++ b/Core/Scattering/IFormFactorBorn.h
@@ -15,9 +15,9 @@
 #ifndef IFORMFACTORBORN_H
 #define IFORMFACTORBORN_H
 
-#include "IFormFactor.h"
-#include "IShape.h"
-#include "Vectors3D.h"
+#include "Core/Scattering/IFormFactor.h"
+#include "Core/Shapes/IShape.h"
+#include "Core/Vector/Vectors3D.h"
 
 struct SlicingEffects;
 
diff --git a/Core/Scattering/ISample.cpp b/Core/Scattering/ISample.cpp
index 7a7ef60eac6701fe8c1e02c8cee70e4e2f3f12ef..ac7517b4b45a304ac1aa834046a2989b7e8f4223 100644
--- a/Core/Scattering/ISample.cpp
+++ b/Core/Scattering/ISample.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ISample.h"
-#include "Exceptions.h"
-#include "ParameterPool.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/ParameterPool.h"
 #include <algorithm>
 #include <sstream>
 
diff --git a/Core/Scattering/ISample.h b/Core/Scattering/ISample.h
index 3490af62fe42915acecc2a9b3e4c9b0195634c8c..83f552ddfd1eca98f562bdaf4d3200686a914208 100644
--- a/Core/Scattering/ISample.h
+++ b/Core/Scattering/ISample.h
@@ -15,8 +15,8 @@
 #ifndef ISAMPLE_H
 #define ISAMPLE_H
 
-#include "ICloneable.h"
-#include "INode.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Parametrization/INode.h"
 #include <vector>
 
 class Material;
diff --git a/Core/Scattering/Rotations.cpp b/Core/Scattering/Rotations.cpp
index d92222332c8d70ed65220013cde63eb3415882e1..18dc1bf991fe9565e0ac55a5abf734a38780361c 100644
--- a/Core/Scattering/Rotations.cpp
+++ b/Core/Scattering/Rotations.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Rotations.h"
-#include "BornAgainNamespace.h"
-#include "RealParameter.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/RealParameter.h"
 
 IRotation* IRotation::createRotation(const Transform3D& transform)
 {
diff --git a/Core/Scattering/Rotations.h b/Core/Scattering/Rotations.h
index f0f4ae1d23df5ea5c818e915c5a4974f50c8556c..bba1b7fb5d05d697adbcab67c8f3ed9c6c1be724 100644
--- a/Core/Scattering/Rotations.h
+++ b/Core/Scattering/Rotations.h
@@ -15,8 +15,8 @@
 #ifndef ROTATIONS_H
 #define ROTATIONS_H
 
-#include "ISample.h"
-#include "Transform3D.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Vector/Transform3D.h"
 
 //! Pure virtual interface for rotations.
 //! @ingroup samples
diff --git a/Core/Shapes/Box.cpp b/Core/Shapes/Box.cpp
index baee11e3cf85b84a652fd2ed3fc7b0a6235ae1c9..c12373bb8b170d2227c4ebc82b1dd53e6bee5722 100644
--- a/Core/Shapes/Box.cpp
+++ b/Core/Shapes/Box.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Box.h"
+#include "Core/Shapes/Box.h"
 
 #include <algorithm>
 
diff --git a/Core/Shapes/Box.h b/Core/Shapes/Box.h
index a457fa73ff52fa34d94e1fa2fdcc15feee653b90..d90381023f88b16bdc5678d8ea807f6ad0e815ab 100644
--- a/Core/Shapes/Box.h
+++ b/Core/Shapes/Box.h
@@ -15,7 +15,7 @@
 #ifndef BOX_H
 #define BOX_H
 
-#include "IShape.h"
+#include "Core/Shapes/IShape.h"
 
 class Box : public IShape
 {
diff --git a/Core/Shapes/DoubleEllipse.cpp b/Core/Shapes/DoubleEllipse.cpp
index e0553b93afcb8813e1d720bcc8b178fcbb2f4055..541c26b79b86606fd16fb8979f70ac5b3ad7b007 100644
--- a/Core/Shapes/DoubleEllipse.cpp
+++ b/Core/Shapes/DoubleEllipse.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "DoubleEllipse.h"
+#include "Core/Shapes/DoubleEllipse.h"
 
 #include <algorithm>
 
diff --git a/Core/Shapes/DoubleEllipse.h b/Core/Shapes/DoubleEllipse.h
index b2276bb5dd465b7b0e6d1cf66dfab0867d0c5d30..6982857ed4ac82783171d2c7ff4afa004bc37430 100644
--- a/Core/Shapes/DoubleEllipse.h
+++ b/Core/Shapes/DoubleEllipse.h
@@ -15,7 +15,7 @@
 #ifndef DOUBLEELLIPSE_H
 #define DOUBLEELLIPSE_H
 
-#include "IShape.h"
+#include "Core/Shapes/IShape.h"
 
 class DoubleEllipse : public IShape
 {
diff --git a/Core/Shapes/IShape.cpp b/Core/Shapes/IShape.cpp
index ae4c0c89c372147a4a80601674951b7b52e86bfd..532ac54350c4f538f13b936b79fd810b949e633d 100644
--- a/Core/Shapes/IShape.cpp
+++ b/Core/Shapes/IShape.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IShape.h"
+#include "Core/Shapes/IShape.h"
 
 #include <cmath>
 
diff --git a/Core/Shapes/IShape.h b/Core/Shapes/IShape.h
index 992eef58eb7a6456dc152d52bf4153f9eb416a7e..4e09b5bf7ed8083220c45127a065800faa00c6f4 100644
--- a/Core/Shapes/IShape.h
+++ b/Core/Shapes/IShape.h
@@ -15,7 +15,7 @@
 #ifndef ISHAPE_H
 #define ISHAPE_H
 
-#include "Vectors3D.h"
+#include "Core/Vector/Vectors3D.h"
 #include <vector>
 
 //! Pure virtual base class for different shapes.
diff --git a/Core/Shapes/RippleCosine.cpp b/Core/Shapes/RippleCosine.cpp
index dbcb9ed6f0d03bfdfea96c9cb3d1a02d64d6d81f..4e70795c551cd92497ca16a0fcb4094154418b56 100644
--- a/Core/Shapes/RippleCosine.cpp
+++ b/Core/Shapes/RippleCosine.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RippleCosine.h"
+#include "Core/Shapes/RippleCosine.h"
 
 #include <cmath>
 
diff --git a/Core/Shapes/RippleCosine.h b/Core/Shapes/RippleCosine.h
index a35c58314fc223aecc6d350b0a2b09cb9138dbef..28aa5a5e386db1ac6c4cfcddd04459d9ddcecbc5 100644
--- a/Core/Shapes/RippleCosine.h
+++ b/Core/Shapes/RippleCosine.h
@@ -15,7 +15,7 @@
 #ifndef RIPPLECOSINE_H
 #define RIPPLECOSINE_H
 
-#include "IShape.h"
+#include "Core/Shapes/IShape.h"
 
 class RippleCosine : public IShape
 {
diff --git a/Core/Shapes/RippleSawtooth.cpp b/Core/Shapes/RippleSawtooth.cpp
index fd87bbbf3c658d1f3f93ea9be2d7b491e329050c..d67cd1139a5768a0ed4e883ff2a7ecd0ce9470e3 100644
--- a/Core/Shapes/RippleSawtooth.cpp
+++ b/Core/Shapes/RippleSawtooth.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RippleSawtooth.h"
+#include "Core/Shapes/RippleSawtooth.h"
 
 RippleSawtooth::RippleSawtooth(double length, double width, double height, double asymmetry)
 {
diff --git a/Core/Shapes/RippleSawtooth.h b/Core/Shapes/RippleSawtooth.h
index c7895aa1ec9447e17ff4956f8559fbb5c7f20e2a..9f68328df1d71367ba366e704331ba5d40cdc6ce 100644
--- a/Core/Shapes/RippleSawtooth.h
+++ b/Core/Shapes/RippleSawtooth.h
@@ -15,7 +15,7 @@
 #ifndef RIPPLESAWTOOTH_H
 #define RIPPLESAWTOOTH_H
 
-#include "IShape.h"
+#include "Core/Shapes/IShape.h"
 
 class RippleSawtooth : public IShape
 {
diff --git a/Core/Shapes/TruncatedEllipsoid.cpp b/Core/Shapes/TruncatedEllipsoid.cpp
index 4d0f708db00dbcdef38155315ec0dfb22a3b0fe7..c56f9be2951cf08db5c830bd746257ded179ec65 100644
--- a/Core/Shapes/TruncatedEllipsoid.cpp
+++ b/Core/Shapes/TruncatedEllipsoid.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "TruncatedEllipsoid.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/Core/Shapes/TruncatedEllipsoid.h b/Core/Shapes/TruncatedEllipsoid.h
index 15261217ca5a44849c5f95de125cad24876cf159..2d4092af7a1acc5008fc24e4ec1097bae6b72733 100644
--- a/Core/Shapes/TruncatedEllipsoid.h
+++ b/Core/Shapes/TruncatedEllipsoid.h
@@ -15,7 +15,7 @@
 #ifndef TRUNCATEDELLIPSOID_H
 #define TRUNCATEDELLIPSOID_H
 
-#include "IShape.h"
+#include "Core/Shapes/IShape.h"
 
 class TruncatedEllipsoid : public IShape
 {
diff --git a/Core/Simulation/DepthProbeSimulation.cpp b/Core/Simulation/DepthProbeSimulation.cpp
index 2613ecbbd27519bbde967e868dc2f2c4cb42425d..fa6a9b5ea8dae2985ee5905279c728b150157cc3 100644
--- a/Core/Simulation/DepthProbeSimulation.cpp
+++ b/Core/Simulation/DepthProbeSimulation.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "DepthProbeSimulation.h"
-#include "DepthProbeComputation.h"
-#include "Distributions.h"
-#include "Histogram1D.h"
-#include "IBackground.h"
-#include "IFootprintFactor.h"
-#include "IMultiLayerBuilder.h"
-#include "MaterialUtils.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
-#include "SimpleUnitConverters.h"
-#include "SpecularDetector1D.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Computation/DepthProbeComputation.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/Beam/IFootprintFactor.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Instrument/SpecularDetector1D.h"
 
 namespace
 {
diff --git a/Core/Simulation/DepthProbeSimulation.h b/Core/Simulation/DepthProbeSimulation.h
index 5aba4e2b77ec9caf70512e25eb87a03a1dd4a7d5..0ad3f6dba29cb6eeb19a0cbb64122b9990587a85 100644
--- a/Core/Simulation/DepthProbeSimulation.h
+++ b/Core/Simulation/DepthProbeSimulation.h
@@ -15,10 +15,10 @@
 #ifndef DEPTHPROBESIMULATION_H
 #define DEPTHPROBESIMULATION_H
 
-#include "DepthProbeElement.h"
-#include "ILayerRTCoefficients.h"
-#include "OutputData.h"
-#include "Simulation.h"
+#include "Core/SimulationElement/DepthProbeElement.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Simulation/Simulation.h"
 
 #include <vector>
 
diff --git a/Core/Simulation/GISASSimulation.cpp b/Core/Simulation/GISASSimulation.cpp
index 5197935b38b7884214453ec159b49ff41c5bc370..6a4251904ceb3c2f177fd310dd0f887e7881125c 100644
--- a/Core/Simulation/GISASSimulation.cpp
+++ b/Core/Simulation/GISASSimulation.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "GISASSimulation.h"
-#include "BornAgainNamespace.h"
-#include "DWBAComputation.h"
-#include "Histogram2D.h"
-#include "IBackground.h"
-#include "IMultiLayerBuilder.h"
-#include "MultiLayer.h"
-#include "SimulationElement.h"
-#include "UnitConverterUtils.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Computation/DWBAComputation.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Instrument/UnitConverterUtils.h"
 
 GISASSimulation::GISASSimulation()
 {
diff --git a/Core/Simulation/GISASSimulation.h b/Core/Simulation/GISASSimulation.h
index 8d1b6405f552d1b730e2b9771da6cf12d4474e62..a737c88e49d18cd474f10bdb0f370d29f7878671 100644
--- a/Core/Simulation/GISASSimulation.h
+++ b/Core/Simulation/GISASSimulation.h
@@ -15,8 +15,8 @@
 #ifndef GISASSIMULATION_H
 #define GISASSIMULATION_H
 
-#include "Simulation2D.h"
-#include "SimulationElement.h"
+#include "Core/Simulation/Simulation2D.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 class MultiLayer;
 class IMultiLayerBuilder;
diff --git a/Core/Simulation/MPISimulation.cpp b/Core/Simulation/MPISimulation.cpp
index b9b083ec907fe7efa3b6b2e5e133895bd1295893..245ff6de91a3c38ad8a112348f24295b86248b2f 100644
--- a/Core/Simulation/MPISimulation.cpp
+++ b/Core/Simulation/MPISimulation.cpp
@@ -13,11 +13,11 @@
 //
 // ************************************************************************** //
 
-#include "MPISimulation.h"
+#include "Core/Simulation/MPISimulation.h"
 
 #ifdef BORNAGAIN_MPI
 
-#include "Simulation.h"
+#include "Core/Simulation/Simulation.h"
 #include <mpi.h>
 
 // -----------------------------------------------------------------------------
diff --git a/Core/Simulation/OffSpecSimulation.cpp b/Core/Simulation/OffSpecSimulation.cpp
index 90674c244a55729eebbfdab1106f3a448f0a1e78..c333566f559c7e3204b7926a3214b13d8a4ed643 100644
--- a/Core/Simulation/OffSpecSimulation.cpp
+++ b/Core/Simulation/OffSpecSimulation.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "OffSpecSimulation.h"
-#include "BornAgainNamespace.h"
-#include "DWBAComputation.h"
-#include "Distributions.h"
-#include "Histogram2D.h"
-#include "IMultiLayerBuilder.h"
-#include "MultiLayer.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
-#include "SimpleUnitConverters.h"
-#include "SimulationElement.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Computation/DWBAComputation.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 OffSpecSimulation::OffSpecSimulation()
 {
diff --git a/Core/Simulation/OffSpecSimulation.h b/Core/Simulation/OffSpecSimulation.h
index 61a0ac5adc019c6d0bca33db0ff1d70b211b46d7..38db91ad887443c983025a8c8b6ca7b5bfaa329b 100644
--- a/Core/Simulation/OffSpecSimulation.h
+++ b/Core/Simulation/OffSpecSimulation.h
@@ -15,8 +15,8 @@
 #ifndef OFFSPECSIMULATION_H
 #define OFFSPECSIMULATION_H
 
-#include "Simulation2D.h"
-#include "SimulationElement.h"
+#include "Core/Simulation/Simulation2D.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 class Histogram2D;
 
diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp
index db6c8a3971768a31d55463d72e7c48d7679e9fac..33199d74f024ed9753e4dc4552a8a4db1a52e8ae 100644
--- a/Core/Simulation/Simulation.cpp
+++ b/Core/Simulation/Simulation.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "Simulation.h"
-#include "IBackground.h"
-#include "IComputation.h"
-#include "IMultiLayerBuilder.h"
-#include "MPISimulation.h"
-#include "MultiLayer.h"
-#include "MultiLayerUtils.h"
-#include "ParameterPool.h"
-#include "ParameterSample.h"
-#include "StringUtils.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/Computation/IComputation.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Simulation/MPISimulation.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Fit/Tools/StringUtils.h"
 #include <gsl/gsl_errno.h>
 #include <iomanip>
 #include <iostream>
diff --git a/Core/Simulation/Simulation.h b/Core/Simulation/Simulation.h
index deb94d548928cb950955c23b64aed3b09249a898..4ae314506f3b2bc99c3f8e5497f68e2b2f8f8897 100644
--- a/Core/Simulation/Simulation.h
+++ b/Core/Simulation/Simulation.h
@@ -15,14 +15,14 @@
 #ifndef SIMULATION_H
 #define SIMULATION_H
 
-#include "DistributionHandler.h"
-#include "IDetector2D.h"
-#include "INode.h"
-#include "Instrument.h"
-#include "ProgressHandler.h"
-#include "SampleProvider.h"
-#include "SimulationOptions.h"
-#include "SimulationResult.h"
+#include "Core/Parametrization/DistributionHandler.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Computation/ProgressHandler.h"
+#include "Core/Multilayer/SampleProvider.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Instrument/SimulationResult.h"
 
 template <class T> class OutputData;
 class IBackground;
diff --git a/Core/Simulation/Simulation2D.cpp b/Core/Simulation/Simulation2D.cpp
index 544cd0cb8d1ca5ec93b6d0775beeb4f0f593e57c..c32a72345af060c48461427466e3b79547549469 100644
--- a/Core/Simulation/Simulation2D.cpp
+++ b/Core/Simulation/Simulation2D.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "Simulation2D.h"
-#include "DWBAComputation.h"
-#include "DetectorContext.h"
-#include "DetectorFunctions.h"
-#include "Histogram2D.h"
-#include "IBackground.h"
-#include "SimulationElement.h"
+#include "Core/Simulation/Simulation2D.h"
+#include "Core/Computation/DWBAComputation.h"
+#include "Core/Instrument/DetectorContext.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/SimulationElement/SimulationElement.h"
 
 namespace
 {
diff --git a/Core/Simulation/Simulation2D.h b/Core/Simulation/Simulation2D.h
index 07dc9789f5f4d502224d44695e8ea8816ef53f1c..83629bc1c24ec25f50b11b029f407c4073d5830b 100644
--- a/Core/Simulation/Simulation2D.h
+++ b/Core/Simulation/Simulation2D.h
@@ -15,8 +15,8 @@
 #ifndef SIMULATION2D_H
 #define SIMULATION2D_H
 
-#include "Simulation.h"
-#include "SimulationResult.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Instrument/SimulationResult.h"
 
 class DetectorContext;
 
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index 073118eaa0f71efed585fe37962b17f8a71fc1dc..b4b99678ccbf5700daec4cedeec9914933e271d9 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "SpecularSimulation.h"
-#include "AngularSpecScan.h"
-#include "Distributions.h"
-#include "Histogram1D.h"
-#include "IBackground.h"
-#include "IFootprintFactor.h"
-#include "IMultiLayerBuilder.h"
-#include "ISpecularScan.h"
-#include "MaterialUtils.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "ParameterPool.h"
-#include "PointwiseAxis.h"
-#include "RealParameter.h"
-#include "SpecularComputation.h"
-#include "SpecularDetector1D.h"
-#include "SpecularSimulationElement.h"
-#include "UnitConverter1D.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/Beam/IFootprintFactor.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Instrument/ISpecularScan.h"
+#include "Core/Material/MaterialUtils.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Computation/SpecularComputation.h"
+#include "Core/Instrument/SpecularDetector1D.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
+#include "Core/Instrument/UnitConverter1D.h"
 
 namespace
 {
diff --git a/Core/Simulation/SpecularSimulation.h b/Core/Simulation/SpecularSimulation.h
index f4e1bc79847e62495032cbf0d09d1d3e57d98bc3..1723b90040c126ba341e2d31b5ee6f07563ee8a0 100644
--- a/Core/Simulation/SpecularSimulation.h
+++ b/Core/Simulation/SpecularSimulation.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARSIMULATION_H
 #define SPECULARSIMULATION_H
 
-#include "ILayerRTCoefficients.h"
-#include "OutputData.h"
-#include "Simulation.h"
+#include "Core/Multilayer/ILayerRTCoefficients.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Simulation/Simulation.h"
 
 class IAxis;
 class IComputation;
diff --git a/Core/SimulationElement/DepthProbeElement.cpp b/Core/SimulationElement/DepthProbeElement.cpp
index 7582c52960c1eb55d7a5c9db29780bdfdc28e00b..997a49a893e2ebaf16944df3d33818d82efc994c 100644
--- a/Core/SimulationElement/DepthProbeElement.cpp
+++ b/Core/SimulationElement/DepthProbeElement.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DepthProbeElement.h"
-#include "IAxis.h"
+#include "Core/SimulationElement/DepthProbeElement.h"
+#include "Core/Binning/IAxis.h"
 
 const double phi_i_0 = 0.0;
 
diff --git a/Core/SimulationElement/DepthProbeElement.h b/Core/SimulationElement/DepthProbeElement.h
index 0288878292356f7c489c9b200bd0d035580f24bc..cb1f56723dc5e75f8948d0244f1f4b33f0bd4ddf 100644
--- a/Core/SimulationElement/DepthProbeElement.h
+++ b/Core/SimulationElement/DepthProbeElement.h
@@ -17,7 +17,7 @@
 
 #include <valarray>
 
-#include "Vectors3D.h"
+#include "Core/Vector/Vectors3D.h"
 
 class IAxis;
 
diff --git a/Core/SimulationElement/PolarizationHandler.cpp b/Core/SimulationElement/PolarizationHandler.cpp
index 6eb96c524bc0dbc749dfb4e1fb8a8f57ea1babb2..9919737db573346c9440de0cccc1d4b3c941d87b 100644
--- a/Core/SimulationElement/PolarizationHandler.cpp
+++ b/Core/SimulationElement/PolarizationHandler.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "PolarizationHandler.h"
+#include "Core/SimulationElement/PolarizationHandler.h"
 
 // corresponds to completely unpolarized beam and the absence of spin selection in the analyzer
 PolarizationHandler::PolarizationHandler()
diff --git a/Core/SimulationElement/PolarizationHandler.h b/Core/SimulationElement/PolarizationHandler.h
index 1dc4d38c63af6227a0e980bf7248f61d88ccd9d7..eeb9a1f61766a35c2f56ae45fb1d3c9dffbdc754 100644
--- a/Core/SimulationElement/PolarizationHandler.h
+++ b/Core/SimulationElement/PolarizationHandler.h
@@ -15,8 +15,8 @@
 #ifndef POLARIZATIONHANDLER_H_
 #define POLARIZATIONHANDLER_H_
 
-#include "EigenCore.h"
-#include "WinDllMacros.h"
+#include "Core/Vector/EigenCore.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Convenience class for handling polarization density matrix and polarization analyzer operator
 //! @ingroup simulation
diff --git a/Core/SimulationElement/SimulationElement.cpp b/Core/SimulationElement/SimulationElement.cpp
index 3c3d2d8f81e7a6638a44f13380fc6a9a7f1d3acd..a3647e769bf4c79cc450f8f0f72ed0cd03e261e6 100644
--- a/Core/SimulationElement/SimulationElement.cpp
+++ b/Core/SimulationElement/SimulationElement.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SimulationElement.h"
-#include "IPixel.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Binning/IPixel.h"
 
 SimulationElement::SimulationElement(double wavelength, double alpha_i, double phi_i,
                                      std::unique_ptr<IPixel> pixel)
diff --git a/Core/SimulationElement/SimulationElement.h b/Core/SimulationElement/SimulationElement.h
index 57571ce551fdae35a0b52c3be1c05b6c3207aedf..750612eb059f71475ababa879d7f4ff5b1731140 100644
--- a/Core/SimulationElement/SimulationElement.h
+++ b/Core/SimulationElement/SimulationElement.h
@@ -15,10 +15,10 @@
 #ifndef SIMULATIONELEMENT_H
 #define SIMULATIONELEMENT_H
 
-#include "Complex.h"
-#include "IPixel.h"
-#include "PolarizationHandler.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Binning/IPixel.h"
+#include "Core/SimulationElement/PolarizationHandler.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 
 class IPixel;
diff --git a/Core/SimulationElement/SpecularSimulationElement.cpp b/Core/SimulationElement/SpecularSimulationElement.cpp
index 1423082a48cee1cbd89913277bed27fb8487858d..3640d2b780ca7ac1e5afbb1b952967b680c0399f 100644
--- a/Core/SimulationElement/SpecularSimulationElement.cpp
+++ b/Core/SimulationElement/SpecularSimulationElement.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SpecularSimulationElement.h"
-#include "KzComputation.h"
-#include "Layer.h"
-#include "MultiLayer.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
+#include "Core/Multilayer/KzComputation.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/MultiLayer.h"
 
 SpecularSimulationElement::SpecularSimulationElement(double kz)
     : m_intensity(0.0), m_calculation_flag(true),
diff --git a/Core/SimulationElement/SpecularSimulationElement.h b/Core/SimulationElement/SpecularSimulationElement.h
index 9c6abcffcb71d2c1b0bb5195c3257bf4651cd589..4a2e8199d41a06f2f91303961b7e5d5002ab637a 100644
--- a/Core/SimulationElement/SpecularSimulationElement.h
+++ b/Core/SimulationElement/SpecularSimulationElement.h
@@ -15,9 +15,9 @@
 #ifndef SPECULARSIMULATIONELEMENT_H
 #define SPECULARSIMULATIONELEMENT_H
 
-#include "Complex.h"
-#include "PolarizationHandler.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/SimulationElement/PolarizationHandler.h"
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/SoftParticle/FormFactorDebyeBueche.cpp b/Core/SoftParticle/FormFactorDebyeBueche.cpp
index 3877b978319de51899af503920acf6b5539da64a..da3f1d13d961e4e98c583161c710285d2ba04f03 100644
--- a/Core/SoftParticle/FormFactorDebyeBueche.cpp
+++ b/Core/SoftParticle/FormFactorDebyeBueche.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorDebyeBueche.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/SoftParticle/FormFactorDebyeBueche.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 FormFactorDebyeBueche::FormFactorDebyeBueche(double I0, double xi)
diff --git a/Core/SoftParticle/FormFactorDebyeBueche.h b/Core/SoftParticle/FormFactorDebyeBueche.h
index 4ac5c24caec38c4b3a8966e9b9295311fec4391f..6d88f368c832540373effab898fc7dc4ecac4aeb 100644
--- a/Core/SoftParticle/FormFactorDebyeBueche.h
+++ b/Core/SoftParticle/FormFactorDebyeBueche.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORDEBYEBUECHE_H
 #define FORMFACTORDEBYEBUECHE_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! The form factor of a Debye-Bueche (see doi:10.1038/pj.2010.110).
 //! @ingroup softParticle
diff --git a/Core/SoftParticle/FormFactorGauss.cpp b/Core/SoftParticle/FormFactorGauss.cpp
index 58217a3db2666474d5157b48f3740da5d42fcba9..91798d90d61f64cd957d22cd3cdcb23ae4f509c5 100644
--- a/Core/SoftParticle/FormFactorGauss.cpp
+++ b/Core/SoftParticle/FormFactorGauss.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorGauss.h"
-#include "BornAgainNamespace.h"
-#include "Box.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/SoftParticle/FormFactorGauss.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/Box.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 FormFactorGauss::FormFactorGauss(double length) : FormFactorGauss(length, length) {}
diff --git a/Core/SoftParticle/FormFactorGauss.h b/Core/SoftParticle/FormFactorGauss.h
index e26e03433931ec110b3385d57ea82e10e7318e11..a1fdccbe8ab49455fe1b4c0c6398e84c5f0b3ea1 100644
--- a/Core/SoftParticle/FormFactorGauss.h
+++ b/Core/SoftParticle/FormFactorGauss.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORGAUSS_H
 #define FORMFACTORGAUSS_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! The form factor of a gaussian.
 //! @ingroup softParticle
diff --git a/Core/SoftParticle/FormFactorLorentz.cpp b/Core/SoftParticle/FormFactorLorentz.cpp
index b4bd107a5d71d154e051740488772abf2930e5b5..f227923fc82ca757c593d02a81eb4f7c4ea6b034 100644
--- a/Core/SoftParticle/FormFactorLorentz.cpp
+++ b/Core/SoftParticle/FormFactorLorentz.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorLorentz.h"
-#include "BornAgainNamespace.h"
-#include "Box.h"
-#include "MathConstants.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
+#include "Core/SoftParticle/FormFactorLorentz.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Shapes/Box.h"
+#include "Core/Basics/MathConstants.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
 
 FormFactorLorentz::FormFactorLorentz(double width, double height)
 {
diff --git a/Core/SoftParticle/FormFactorLorentz.h b/Core/SoftParticle/FormFactorLorentz.h
index 62ea554a634a914494e75b97b6211d99d3532e94..a2ccaa72767c457f6f50307de7bd2de85484c783 100644
--- a/Core/SoftParticle/FormFactorLorentz.h
+++ b/Core/SoftParticle/FormFactorLorentz.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORLORENTZ_H
 #define FORMFACTORLORENTZ_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! The form factor of a lorentzian.
 //! @ingroup softParticle
diff --git a/Core/SoftParticle/FormFactorOrnsteinZernike.cpp b/Core/SoftParticle/FormFactorOrnsteinZernike.cpp
index fd88d5946707337240eef3bbd3b892ac757998fa..5bfa1e17d79acb97a07982cbb6a9e88ff96913dd 100644
--- a/Core/SoftParticle/FormFactorOrnsteinZernike.cpp
+++ b/Core/SoftParticle/FormFactorOrnsteinZernike.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorOrnsteinZernike.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
+#include "Core/SoftParticle/FormFactorOrnsteinZernike.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
 #include <limits>
 
 FormFactorOrnsteinZernike::FormFactorOrnsteinZernike(double I0, double xi_xy, double xi_z)
diff --git a/Core/SoftParticle/FormFactorOrnsteinZernike.h b/Core/SoftParticle/FormFactorOrnsteinZernike.h
index 513348d325e77cc824cf287f88c5d0719fee170e..80e920b81927bee900a0c592733659d8eeb91b24 100644
--- a/Core/SoftParticle/FormFactorOrnsteinZernike.h
+++ b/Core/SoftParticle/FormFactorOrnsteinZernike.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORORNSTEINZERNIKE_H
 #define FORMFACTORORNSTEINZERNIKE_H
 
-#include "IFormFactorBorn.h"
+#include "Core/Scattering/IFormFactorBorn.h"
 
 //! The form factor of a Ornstein-Zernike (see doi:10.1038/pj.2010.110).
 //! @ingroup softParticle
diff --git a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
index 73e65bdb3de49f8528d8c3b931af1777a72857af..83795ac88a975f1da3c735e4110cb11ff145dfb1 100644
--- a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorSphereGaussianRadius.h"
-#include "BornAgainNamespace.h"
-#include "RealLimits.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/SoftParticle/FormFactorSphereGaussianRadius.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 
 FormFactorSphereGaussianRadius::FormFactorSphereGaussianRadius(double mean, double sigma)
     : m_mean(mean), m_sigma(sigma), m_mean_r3(0.0)
diff --git a/Core/SoftParticle/FormFactorSphereGaussianRadius.h b/Core/SoftParticle/FormFactorSphereGaussianRadius.h
index 66ad5cc5b00cc09d12f730c9e4ce18e1b41f4215..d7497d727d64af7c96cf4c7c8f43860843a75b54 100644
--- a/Core/SoftParticle/FormFactorSphereGaussianRadius.h
+++ b/Core/SoftParticle/FormFactorSphereGaussianRadius.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORSPHEREGAUSSIANRADIUS_H
 #define FORMFACTORSPHEREGAUSSIANRADIUS_H
 
-#include "FormFactorFullSphere.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
 #include <memory>
 
 //! A sphere with gaussian radius distribution.
diff --git a/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
index 98b2ccc112c14a45121430000e70ef99f8737c91..aef53b1e4ef242baed6991499a5e0e77067a1bda 100644
--- a/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorSphereLogNormalRadius.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "ParameterSample.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/SoftParticle/FormFactorSphereLogNormalRadius.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 
 FormFactorSphereLogNormalRadius::FormFactorSphereLogNormalRadius(double mean, double scale_param,
                                                                  size_t n_samples)
diff --git a/Core/SoftParticle/FormFactorSphereLogNormalRadius.h b/Core/SoftParticle/FormFactorSphereLogNormalRadius.h
index f24d9024b11f4199286b4ee5a6cdf70d3ba9538c..ab704e83979d6228308a41b9cd358216e87d55d8 100644
--- a/Core/SoftParticle/FormFactorSphereLogNormalRadius.h
+++ b/Core/SoftParticle/FormFactorSphereLogNormalRadius.h
@@ -15,9 +15,9 @@
 #ifndef FORMFACTORSPHERELOGNORMALRADIUS_H
 #define FORMFACTORSPHERELOGNORMALRADIUS_H
 
-#include "Distributions.h"
-#include "FormFactorFullSphere.h"
-#include "SafePointerVector.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Tools/SafePointerVector.h"
 #include <memory>
 
 //! A sphere with log normal radius distribution.
diff --git a/Core/SoftParticle/FormFactorSphereUniformRadius.cpp b/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
index 6b188433bb60faee105b3a8e4d00602bf9360df8..7694fed30bd1d911c3e4e9b9f4d6b3c872be17f8 100644
--- a/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorSphereUniformRadius.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
-#include "TruncatedEllipsoid.h"
+#include "Core/SoftParticle/FormFactorSphereUniformRadius.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Shapes/TruncatedEllipsoid.h"
 #include <limits>
 
 FormFactorSphereUniformRadius::FormFactorSphereUniformRadius(double mean, double full_width)
diff --git a/Core/SoftParticle/FormFactorSphereUniformRadius.h b/Core/SoftParticle/FormFactorSphereUniformRadius.h
index d5f37ebf422a65db0586ce8a7fbce7845e249a75..6ff7f125dbc387da6147f23c2c8efe47b60a15bb 100644
--- a/Core/SoftParticle/FormFactorSphereUniformRadius.h
+++ b/Core/SoftParticle/FormFactorSphereUniformRadius.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORSPHEREUNIFORMRADIUS_H
 #define FORMFACTORSPHEREUNIFORMRADIUS_H
 
-#include "FormFactorFullSphere.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
 
 //! Integrated full sphere form factor over a uniform distribution of radii.
 //! @ingroup softParticle
diff --git a/Core/StandardSamples/BoxCompositionBuilder.cpp b/Core/StandardSamples/BoxCompositionBuilder.cpp
index 92a54f12e6466f8c01f7f4acbf1f412726594fd5..578d4d0d86380f4b7be91feed4731e8667c5002e 100644
--- a/Core/StandardSamples/BoxCompositionBuilder.cpp
+++ b/Core/StandardSamples/BoxCompositionBuilder.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "BoxCompositionBuilder.h"
-#include "FormFactorBox.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/BoxCompositionBuilder.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 BoxCompositionBuilder::BoxCompositionBuilder()
     : m_particleMaterial(HomogeneousMaterial("Ag", 1.245e-5, 5.419e-7)),
diff --git a/Core/StandardSamples/BoxCompositionBuilder.h b/Core/StandardSamples/BoxCompositionBuilder.h
index 6eb0d8fa02ae52019e3a379a5dd313c3016963e0..bbfe2712661713c6fc0a9bfed35c36fbe13a5ad8 100644
--- a/Core/StandardSamples/BoxCompositionBuilder.h
+++ b/Core/StandardSamples/BoxCompositionBuilder.h
@@ -15,8 +15,8 @@
 #ifndef BOXCOMPOSITIONBUILDER_H
 #define BOXCOMPOSITIONBUILDER_H
 
-#include "IMultiLayerBuilder.h"
-#include "Material.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Material/Material.h"
 
 class MultiLayer;
 class ParticleComposition;
diff --git a/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp b/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp
index fafd931f49f47adcb4593b4247db6211c3c2f0e9..4922311ec364e80c1e0b8147b8ea82400a1d4783 100644
--- a/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp
+++ b/Core/StandardSamples/BoxesSquareLatticeBuilder.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "BoxesSquareLatticeBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorBox.h"
-#include "InterferenceFunction2DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/BoxesSquareLatticeBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 // -----------------------------------------------------------------------------
 // Boxes in square lattice
diff --git a/Core/StandardSamples/BoxesSquareLatticeBuilder.h b/Core/StandardSamples/BoxesSquareLatticeBuilder.h
index eedfe9507b75b6f1a08b0a509cf6e79cc3134b2a..4f9a8708c86503bbb571a0381a7927823c7cfc95 100644
--- a/Core/StandardSamples/BoxesSquareLatticeBuilder.h
+++ b/Core/StandardSamples/BoxesSquareLatticeBuilder.h
@@ -15,7 +15,7 @@
 #ifndef BOXESSQUARELATTICEBUILDER_H
 #define BOXESSQUARELATTICEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/CoreShellParticleBuilder.cpp b/Core/StandardSamples/CoreShellParticleBuilder.cpp
index 39ee2f628d834e9a82c0e3adb866e95719090485..f81ab77fd11135c425e88ac250c82b110df951a3 100644
--- a/Core/StandardSamples/CoreShellParticleBuilder.cpp
+++ b/Core/StandardSamples/CoreShellParticleBuilder.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "CoreShellParticleBuilder.h"
-#include "FormFactorBox.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleCoreShell.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/CoreShellParticleBuilder.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 // --- CoreShellParticleBuilder ---
 
diff --git a/Core/StandardSamples/CoreShellParticleBuilder.h b/Core/StandardSamples/CoreShellParticleBuilder.h
index a064cb2e2ca81a122d9c553671457dbe4afb28c2..d2112e59628f5bf7861f437de02abaabe455d8da 100644
--- a/Core/StandardSamples/CoreShellParticleBuilder.h
+++ b/Core/StandardSamples/CoreShellParticleBuilder.h
@@ -15,7 +15,7 @@
 #ifndef CORESHELLPARTICLEBUILDER_H
 #define CORESHELLPARTICLEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/CustomMorphologyBuilder.cpp b/Core/StandardSamples/CustomMorphologyBuilder.cpp
index 427cd2d80dd46391f524263bbe1abb307ed895a5..8d6ac02146f96b86b53b50b501120a1708515d79 100644
--- a/Core/StandardSamples/CustomMorphologyBuilder.cpp
+++ b/Core/StandardSamples/CustomMorphologyBuilder.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "CustomMorphologyBuilder.h"
-#include "FormFactorBox.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/CustomMorphologyBuilder.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayer* CustomMorphologyBuilder::buildSample() const
 {
diff --git a/Core/StandardSamples/CustomMorphologyBuilder.h b/Core/StandardSamples/CustomMorphologyBuilder.h
index a4a3c05e5ed12a248753c9f6c9904f9bcfcc91c2..a564f708fa9f23634df9d76cf0904f870b776d53 100644
--- a/Core/StandardSamples/CustomMorphologyBuilder.h
+++ b/Core/StandardSamples/CustomMorphologyBuilder.h
@@ -15,7 +15,7 @@
 #ifndef CUSTOMMORPHOLOGYBUILDER_H
 #define CUSTOMMORPHOLOGYBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/CylindersAndPrismsBuilder.cpp b/Core/StandardSamples/CylindersAndPrismsBuilder.cpp
index 6b540ea1dca0e432aa56139ee583ea745cfc68e6..84c2b792de8198be403b576978cf19af81f0d2c1 100644
--- a/Core/StandardSamples/CylindersAndPrismsBuilder.cpp
+++ b/Core/StandardSamples/CylindersAndPrismsBuilder.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "CylindersAndPrismsBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorPrism3.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/CylindersAndPrismsBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/HardParticle/FormFactorPrism3.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 CylindersAndPrismsBuilder::CylindersAndPrismsBuilder() {}
 
diff --git a/Core/StandardSamples/CylindersAndPrismsBuilder.h b/Core/StandardSamples/CylindersAndPrismsBuilder.h
index 22dc9b3f76fa33c8f81f345e61bcb5a0320229e1..177841b08506d3c2f0f005bb41fa7ce70f42c1d8 100644
--- a/Core/StandardSamples/CylindersAndPrismsBuilder.h
+++ b/Core/StandardSamples/CylindersAndPrismsBuilder.h
@@ -15,7 +15,7 @@
 #ifndef CYLINDERSANDPRISMSBUILDER_H
 #define CYLINDERSANDPRISMSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/CylindersBuilder.cpp b/Core/StandardSamples/CylindersBuilder.cpp
index 6374a59ea40f153566fb7cb8c5aa15de8f67f670..e8e53a552f4df487dc4c94a8895f848991e54298 100644
--- a/Core/StandardSamples/CylindersBuilder.cpp
+++ b/Core/StandardSamples/CylindersBuilder.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "CylindersBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCylinder.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Rotations.h"
-#include "Units.h"
+#include "Core/StandardSamples/CylindersBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Parametrization/Units.h"
 
 // -----------------------------------------------------------------------------
 // Cylinders in DWBA
diff --git a/Core/StandardSamples/CylindersBuilder.h b/Core/StandardSamples/CylindersBuilder.h
index cc10a892a73a777dc5bc326a7c7aac32f35c5210..ee833564de036233d443c14e146d4d31b5f43ca6 100644
--- a/Core/StandardSamples/CylindersBuilder.h
+++ b/Core/StandardSamples/CylindersBuilder.h
@@ -15,7 +15,7 @@
 #ifndef CYLINDERSBUILDER_H
 #define CYLINDERSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/HomogeneousMultilayerBuilder.cpp b/Core/StandardSamples/HomogeneousMultilayerBuilder.cpp
index eda0f8950d5cbc2ef9413a1c0b0d5fda3d3cd220..1b19a2e71159d7aba505d1f0bf2084419ffe87d2 100644
--- a/Core/StandardSamples/HomogeneousMultilayerBuilder.cpp
+++ b/Core/StandardSamples/HomogeneousMultilayerBuilder.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "HomogeneousMultilayerBuilder.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
+#include "Core/StandardSamples/HomogeneousMultilayerBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
 
 HomogeneousMultilayerBuilder::HomogeneousMultilayerBuilder()
     : m_number_of_layers(10), m_delta_ti(-7.36e-7), m_delta_ni(3.557e-6), m_delta_si(7.81e-7),
diff --git a/Core/StandardSamples/HomogeneousMultilayerBuilder.h b/Core/StandardSamples/HomogeneousMultilayerBuilder.h
index 635af69ff99fa37c94cb78f27105fdac55782951..223ddfffd6301e00bbdc05de4b627578f1fe47b9 100644
--- a/Core/StandardSamples/HomogeneousMultilayerBuilder.h
+++ b/Core/StandardSamples/HomogeneousMultilayerBuilder.h
@@ -15,7 +15,7 @@
 #ifndef HOMOGENEOUSMULTILAYERBUILDER_H_
 #define HOMOGENEOUSMULTILAYERBUILDER_H_
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds a sample with 10 interchanging homogeneous layers of Ti and Ni on silicone substrate.
 //! Ti is 70 angstroms thick, Ni is 30 angstroms thick.
diff --git a/Core/StandardSamples/IFactory.h b/Core/StandardSamples/IFactory.h
index 7e88f7049dce8110470320db868e1eb5b4e5e0ee..7b641f485b14836bd2e8c148e5c4a6ab9efb8f9e 100644
--- a/Core/StandardSamples/IFactory.h
+++ b/Core/StandardSamples/IFactory.h
@@ -15,7 +15,7 @@
 #ifndef IFACTORY_H
 #define IFACTORY_H
 
-#include "Exceptions.h"
+#include "Core/Basics/Exceptions.h"
 #include <functional>
 #include <map>
 #include <memory>
diff --git a/Core/StandardSamples/IRegistry.h b/Core/StandardSamples/IRegistry.h
index f8328434ae415e5eaf0a1850897b253f54d7cf58..3bafb8049dbbedc767f15300fd2e599a9559008b 100644
--- a/Core/StandardSamples/IRegistry.h
+++ b/Core/StandardSamples/IRegistry.h
@@ -15,7 +15,7 @@
 #ifndef IREGISTRY_H
 #define IREGISTRY_H
 
-#include "Exceptions.h"
+#include "Core/Basics/Exceptions.h"
 #include <map>
 #include <memory>
 #include <string>
diff --git a/Core/StandardSamples/LatticeBuilder.cpp b/Core/StandardSamples/LatticeBuilder.cpp
index 726bfa109b35d52d25373e4cb986b6b3087663a0..beb2ac9bf99d9a41b26b9f107abea72197f494b6 100644
--- a/Core/StandardSamples/LatticeBuilder.cpp
+++ b/Core/StandardSamples/LatticeBuilder.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "LatticeBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FTDecayFunctions.h"
-#include "FormFactorCylinder.h"
-#include "InterferenceFunction1DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/LatticeBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Aggregate/InterferenceFunction1DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 Lattice1DBuilder::Lattice1DBuilder()
     : m_length(20.0 * Units::nanometer), m_xi(10.0 * Units::deg),
diff --git a/Core/StandardSamples/LatticeBuilder.h b/Core/StandardSamples/LatticeBuilder.h
index 43a5d0b7d5a3e0da735c46087c1abf96550d0367..45a32d080ca31453a153eb44bd2b7002b8ad26d4 100644
--- a/Core/StandardSamples/LatticeBuilder.h
+++ b/Core/StandardSamples/LatticeBuilder.h
@@ -15,7 +15,7 @@
 #ifndef LATTICEBUILDER_H
 #define LATTICEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/LayersWithAbsorptionBuilder.cpp b/Core/StandardSamples/LayersWithAbsorptionBuilder.cpp
index ebe77444386eb79580a27c3f9c11e53c2b1acb18..164d8598e7a1e8e436753c4aef1908e2b3ff7ddd 100644
--- a/Core/StandardSamples/LayersWithAbsorptionBuilder.cpp
+++ b/Core/StandardSamples/LayersWithAbsorptionBuilder.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "LayersWithAbsorptionBuilder.h"
-#include "Exceptions.h"
-#include "FormFactors.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "SampleComponents.h"
-#include "Units.h"
+#include "Core/StandardSamples/LayersWithAbsorptionBuilder.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/StandardSamples/SampleComponents.h"
+#include "Core/Parametrization/Units.h"
 
 LayersWithAbsorptionBuilder::LayersWithAbsorptionBuilder()
     : m_ff(new FormFactorFullSphere(5.0 * Units::nanometer))
diff --git a/Core/StandardSamples/LayersWithAbsorptionBuilder.h b/Core/StandardSamples/LayersWithAbsorptionBuilder.h
index 516a1bb928adecfb9175f393ce172b5246215c4a..5f6170777201be9b539296da68e78f3bfda5a1c1 100644
--- a/Core/StandardSamples/LayersWithAbsorptionBuilder.h
+++ b/Core/StandardSamples/LayersWithAbsorptionBuilder.h
@@ -15,7 +15,7 @@
 #ifndef LAYERSWITHABSORPTIONBUILDER_H
 #define LAYERSWITHABSORPTIONBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 #include <memory>
 
 class FormFactorComponents;
diff --git a/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp b/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp
index 2fc0a2205af67916dce00ce8237a821d623a8bfc..9847c75cc1be56aedbb2dbc327039cd28e851e86 100644
--- a/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp
+++ b/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "LayersWithAbsorptionBySLDBuilder.h"
-#include "FormFactors.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "Units.h"
+#include "Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/Units.h"
 
 const double middle_layer_thickness(60.0 * Units::nanometer);
 
diff --git a/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h b/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h
index 2a10f6ed632fcf35ccb06a43c969f2707404d264..d5a97c9259f8641a427272eceb184342ebabc88a 100644
--- a/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h
+++ b/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h
@@ -15,7 +15,7 @@
 #ifndef LAYERSWITHABSORPTIONBYSLDBUILDER_H
 #define LAYERSWITHABSORPTIONBYSLDBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! The LayersWithAbsorptionBySLDBuilder class generates a multilayer with 3 layers with
 //! absorption (refractive index has imaginary part). //! The middle layer is populated with
diff --git a/Core/StandardSamples/MagneticLayersBuilder.cpp b/Core/StandardSamples/MagneticLayersBuilder.cpp
index e4af00449b5bf73b9515af71a3ce32a724b2ba16..c127545685dad7e929ce072b32f1104ca938932e 100644
--- a/Core/StandardSamples/MagneticLayersBuilder.cpp
+++ b/Core/StandardSamples/MagneticLayersBuilder.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "MagneticLayersBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorFullSphere.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/MagneticLayersBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MagneticSubstrateZeroFieldBuilder::MagneticSubstrateZeroFieldBuilder()
     : m_sphere_radius(5 * Units::nanometer)
diff --git a/Core/StandardSamples/MagneticLayersBuilder.h b/Core/StandardSamples/MagneticLayersBuilder.h
index 58f72bb676624e8bc4fa388dcbd7cba8e4cdc8e8..b1438e86c11cfde29fbca7d7ae40a4cc56576c7b 100644
--- a/Core/StandardSamples/MagneticLayersBuilder.h
+++ b/Core/StandardSamples/MagneticLayersBuilder.h
@@ -15,7 +15,7 @@
 #ifndef MAGNETICLAYERSBUILDER_H
 #define MAGNETICLAYERSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/MagneticParticlesBuilder.cpp b/Core/StandardSamples/MagneticParticlesBuilder.cpp
index 3122780cdedae4b47295a604cfe678ca149097da..25b227299b982cb4bb92b80a73c3a3781498f700 100644
--- a/Core/StandardSamples/MagneticParticlesBuilder.cpp
+++ b/Core/StandardSamples/MagneticParticlesBuilder.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "MagneticParticlesBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorFullSphere.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/MagneticParticlesBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 // ----------------------------------------------------------------------------
 // Magnetic cylinders and zero magnetic field
diff --git a/Core/StandardSamples/MagneticParticlesBuilder.h b/Core/StandardSamples/MagneticParticlesBuilder.h
index f96f14fd4f0920fc7d5d3e34cff44f43ef869b99..094d61fb77231ea06a30f5d92fb7aab65e2ac804 100644
--- a/Core/StandardSamples/MagneticParticlesBuilder.h
+++ b/Core/StandardSamples/MagneticParticlesBuilder.h
@@ -15,7 +15,7 @@
 #ifndef MAGNETICPARTICLESBUILDER_H
 #define MAGNETICPARTICLESBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/MesoCrystalBuilder.cpp b/Core/StandardSamples/MesoCrystalBuilder.cpp
index 3beaceca78b09e3d135b2014af5d9690e90a02dd..ad91a6620fb18005fcf33e7bcd69e161a878f3a0 100644
--- a/Core/StandardSamples/MesoCrystalBuilder.cpp
+++ b/Core/StandardSamples/MesoCrystalBuilder.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "MesoCrystalBuilder.h"
-#include "BornAgainNamespace.h"
-#include "Crystal.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorSphereGaussianRadius.h"
-#include "ISelectionRule.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MesoCrystal.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/MesoCrystalBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/SoftParticle/FormFactorSphereGaussianRadius.h"
+#include "Core/Lattice/ISelectionRule.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MesoCrystalBuilder::MesoCrystalBuilder() {}
 
diff --git a/Core/StandardSamples/MesoCrystalBuilder.h b/Core/StandardSamples/MesoCrystalBuilder.h
index 2fc8903fc307afe441b8a56962aa9cddeb6bb1d8..6fb5f97d3955c31b10a6224bb28cd25d89f67bc6 100644
--- a/Core/StandardSamples/MesoCrystalBuilder.h
+++ b/Core/StandardSamples/MesoCrystalBuilder.h
@@ -15,8 +15,8 @@
 #ifndef MESOCRYSTALBUILDER_H
 #define MESOCRYSTALBUILDER_H
 
-#include "Complex.h"
-#include "IMultiLayerBuilder.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class IFormFactor;
 class ISample;
diff --git a/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp b/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
index 4629f93073e591e3d3be23a6a7879dd8bf8bbd8e..bdb4b525bbe5c868df8f930411f792a051f85a8a 100644
--- a/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
+++ b/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayerWithNCRoughnessBuilder.h"
-#include "BornAgainNamespace.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayerWithNCRoughnessBuilder::MultiLayerWithNCRoughnessBuilder() {}
 
diff --git a/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h b/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h
index 7d2200772cf7b474275a35cab8f2a76163cfe88d..45465ea3ebd11db0f89730488d313265665e0d90 100644
--- a/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h
+++ b/Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h
@@ -15,8 +15,8 @@
 #ifndef MULTILAYERWITHNCROUGHNESSBUILDER_H
 #define MULTILAYERWITHNCROUGHNESSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
-#include "MultiLayerWithRoughnessBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/StandardSamples/MultiLayerWithRoughnessBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp b/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
index e9f960fb38849c061fbad514474a425e3effc08e..1de2651489e62cd0324cf4b6435d38d392b22ba7 100644
--- a/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
+++ b/Core/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayerWithRoughnessBuilder.h"
-#include "BornAgainNamespace.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/MultiLayerWithRoughnessBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayerWithRoughnessBuilder::MultiLayerWithRoughnessBuilder()
     : m_thicknessA(2.5 * Units::nanometer), m_thicknessB(5.0 * Units::nanometer),
diff --git a/Core/StandardSamples/MultiLayerWithRoughnessBuilder.h b/Core/StandardSamples/MultiLayerWithRoughnessBuilder.h
index 1a29401b63296e48a33c92063ce96194a83f2700..03c4d5414bbd764909ce612ae26e20c35da6e519 100644
--- a/Core/StandardSamples/MultiLayerWithRoughnessBuilder.h
+++ b/Core/StandardSamples/MultiLayerWithRoughnessBuilder.h
@@ -15,7 +15,7 @@
 #ifndef MULTILAYERWITHROUGHNESSBUILDER_H
 #define MULTILAYERWITHROUGHNESSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/MultipleLayoutBuilder.cpp b/Core/StandardSamples/MultipleLayoutBuilder.cpp
index e92194cd5277d85aef8725279a765136c1c22a44..729a619d4a3c1afa0f68e6d4e58f6ffa715b9d84 100644
--- a/Core/StandardSamples/MultipleLayoutBuilder.cpp
+++ b/Core/StandardSamples/MultipleLayoutBuilder.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "MultipleLayoutBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorPrism3.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/MultipleLayoutBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/HardParticle/FormFactorPrism3.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultipleLayoutBuilder::MultipleLayoutBuilder()
     : m_cylinder_height(5 * Units::nanometer), m_cylinder_radius(5 * Units::nanometer),
diff --git a/Core/StandardSamples/MultipleLayoutBuilder.h b/Core/StandardSamples/MultipleLayoutBuilder.h
index cf41068bb40a83422d96d5b8bd7a2f8ea1040a36..882b2d61db798bd279d006570c414548a3d6081d 100644
--- a/Core/StandardSamples/MultipleLayoutBuilder.h
+++ b/Core/StandardSamples/MultipleLayoutBuilder.h
@@ -15,7 +15,7 @@
 #ifndef MULTIPLELAYOUTBUILDER_H
 #define MULTIPLELAYOUTBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/StandardSamples/ParaCrystalBuilder.cpp b/Core/StandardSamples/ParaCrystalBuilder.cpp
index 1729e16c22405e1ccb8f0973a239c9bcacfa6f3f..089ac3865cc88a02e853cee0d2214be422ebb067 100644
--- a/Core/StandardSamples/ParaCrystalBuilder.cpp
+++ b/Core/StandardSamples/ParaCrystalBuilder.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "ParaCrystalBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorCylinder.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "SampleComponents.h"
-#include "Units.h"
+#include "Core/StandardSamples/ParaCrystalBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/StandardSamples/SampleComponents.h"
+#include "Core/Parametrization/Units.h"
 
 RadialParaCrystalBuilder::RadialParaCrystalBuilder()
     : m_corr_peak_distance(20.0 * Units::nanometer), m_corr_width(7 * Units::nanometer),
diff --git a/Core/StandardSamples/ParaCrystalBuilder.h b/Core/StandardSamples/ParaCrystalBuilder.h
index 862250ea5eb1d13fdf389c44ad9adf78696c2833..f6535a698a56f5f109aa57ffca220b83b272aac5 100644
--- a/Core/StandardSamples/ParaCrystalBuilder.h
+++ b/Core/StandardSamples/ParaCrystalBuilder.h
@@ -15,7 +15,7 @@
 #ifndef PARACRYSTALBUILDER_H
 #define PARACRYSTALBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 #include <memory>
 
 class IFTDistribution2D;
diff --git a/Core/StandardSamples/ParticleCompositionBuilder.cpp b/Core/StandardSamples/ParticleCompositionBuilder.cpp
index 595f91cdd57ca0077836a175d64f3cdceb00fbe6..7978666756a02bb10e4e42ad3a83489a3797a5b1 100644
--- a/Core/StandardSamples/ParticleCompositionBuilder.cpp
+++ b/Core/StandardSamples/ParticleCompositionBuilder.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "ParticleCompositionBuilder.h"
-#include "FormFactorFullSphere.h"
-#include "InterferenceFunction2DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/ParticleCompositionBuilder.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 // --- ParticleCompositionBuilder ---
 
diff --git a/Core/StandardSamples/ParticleCompositionBuilder.h b/Core/StandardSamples/ParticleCompositionBuilder.h
index 244e6ae420a7f74003456ae44bf6dfa27ee47118..8e9377af13882c8de2090a8fa73e0ff361913fc0 100644
--- a/Core/StandardSamples/ParticleCompositionBuilder.h
+++ b/Core/StandardSamples/ParticleCompositionBuilder.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLECOMPOSITIONBUILDER_H
 #define PARTICLECOMPOSITIONBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: two layers of spheres at hex lattice.
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/ParticleDistributionsBuilder.cpp b/Core/StandardSamples/ParticleDistributionsBuilder.cpp
index 762429f13a6cd19926f8476b77d9a0864cbcc635..156dc7587082b45e44c1d217d2bbd74fa662aa5d 100644
--- a/Core/StandardSamples/ParticleDistributionsBuilder.cpp
+++ b/Core/StandardSamples/ParticleDistributionsBuilder.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "ParticleDistributionsBuilder.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "FormFactorBox.h"
-#include "FormFactorCone.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorFullSphere.h"
-#include "FormFactorPyramid.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "ParameterPattern.h"
-#include "ParameterSample.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/ParticleDistributionsBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/HardParticle/FormFactorCone.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/HardParticle/FormFactorPyramid.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 CylindersWithSizeDistributionBuilder::CylindersWithSizeDistributionBuilder()
     : m_height(5 * Units::nanometer), m_radius(5 * Units::nanometer)
diff --git a/Core/StandardSamples/ParticleDistributionsBuilder.h b/Core/StandardSamples/ParticleDistributionsBuilder.h
index 8bb64314313a39a1ab393244e1d5c5dae29661de..c4c954780686b0d21a1d85a28a5d1abc2df70e90 100644
--- a/Core/StandardSamples/ParticleDistributionsBuilder.h
+++ b/Core/StandardSamples/ParticleDistributionsBuilder.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLEDISTRIBUTIONSBUILDER_H
 #define PARTICLEDISTRIBUTIONSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Cylinders in BA with size distributions (IsGISAXS example #3, part II).
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/ParticleInTheAirBuilder.cpp b/Core/StandardSamples/ParticleInTheAirBuilder.cpp
index 635642a0c855fa4c749b6a51adc662d302cae965..c3515a1337ba60d31a4d02c1327bcc6474aecb74 100644
--- a/Core/StandardSamples/ParticleInTheAirBuilder.cpp
+++ b/Core/StandardSamples/ParticleInTheAirBuilder.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "ParticleInTheAirBuilder.h"
-#include "Exceptions.h"
-#include "FormFactors.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "SampleComponents.h"
-#include "Units.h"
+#include "Core/StandardSamples/ParticleInTheAirBuilder.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/StandardSamples/SampleComponents.h"
+#include "Core/Parametrization/Units.h"
 
 ParticleInTheAirBuilder::ParticleInTheAirBuilder()
     : m_ff(new FormFactorFullSphere(5.0 * Units::nanometer))
diff --git a/Core/StandardSamples/ParticleInTheAirBuilder.h b/Core/StandardSamples/ParticleInTheAirBuilder.h
index decd090457678e7cfa24d50d166a8d8bb85fb8f4..c3e983baa0ca03bc31e75375c2109a74d39cc295 100644
--- a/Core/StandardSamples/ParticleInTheAirBuilder.h
+++ b/Core/StandardSamples/ParticleInTheAirBuilder.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLEINTHEAIRBUILDER_H
 #define PARTICLEINTHEAIRBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 #include <memory>
 
 class IFormFactor;
diff --git a/Core/StandardSamples/PercusYevickBuilder.cpp b/Core/StandardSamples/PercusYevickBuilder.cpp
index 73b1c88752a300aeba75de3562359458cda4d208..fdace3bb79416dd900128e6726ee516f5dd80987 100644
--- a/Core/StandardSamples/PercusYevickBuilder.cpp
+++ b/Core/StandardSamples/PercusYevickBuilder.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "PercusYevickBuilder.h"
-#include "FormFactorCylinder.h"
-#include "InterferenceFunctionHardDisk.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "Units.h"
+#include "Core/StandardSamples/PercusYevickBuilder.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Aggregate/InterferenceFunctionHardDisk.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/Units.h"
 
 HardDiskBuilder::HardDiskBuilder()
     : m_cylinder_height(5 * Units::nanometer), m_cylinder_radius(5 * Units::nanometer),
diff --git a/Core/StandardSamples/PercusYevickBuilder.h b/Core/StandardSamples/PercusYevickBuilder.h
index 561661cbc3514c2f17dddc2ce4fddb14beaffedb..132394c8e2b3f7a128e27c214da3150bafa134d5 100644
--- a/Core/StandardSamples/PercusYevickBuilder.h
+++ b/Core/StandardSamples/PercusYevickBuilder.h
@@ -15,7 +15,7 @@
 #ifndef PERCUSYEVICKBUILDER_H
 #define PERCUSYEVICKBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 #include <memory>
 
 class ISample;
diff --git a/Core/StandardSamples/PlainMultiLayerBySLDBuilder.cpp b/Core/StandardSamples/PlainMultiLayerBySLDBuilder.cpp
index 9da0a45cfd564ddf3835fed6cfc3f86af943a39a..95e0a38b45a15afa9831c41a9d931a97a99e8587 100644
--- a/Core/StandardSamples/PlainMultiLayerBySLDBuilder.cpp
+++ b/Core/StandardSamples/PlainMultiLayerBySLDBuilder.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "PlainMultiLayerBySLDBuilder.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Units.h"
+#include "Core/StandardSamples/PlainMultiLayerBySLDBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/Units.h"
 
 PlainMultiLayerBySLDBuilder::PlainMultiLayerBySLDBuilder(int n_layers)
     : m_number_of_layers(n_layers), m_si{2.0704e-06, 2.3726e-11}, m_ti{-1.9493e-06, 9.6013e-10},
diff --git a/Core/StandardSamples/PlainMultiLayerBySLDBuilder.h b/Core/StandardSamples/PlainMultiLayerBySLDBuilder.h
index 6ccfd5e7de25597f9af02e19c79d39a4a2678555..c289841884dc2d7d8e446ada4bc5029a7bf24dad 100644
--- a/Core/StandardSamples/PlainMultiLayerBySLDBuilder.h
+++ b/Core/StandardSamples/PlainMultiLayerBySLDBuilder.h
@@ -15,7 +15,7 @@
 #ifndef PLANEMULTILAYERBYSLDBUILDER_H_
 #define PLANEMULTILAYERBYSLDBUILDER_H_
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds a sample with 10 interchanging homogeneous layers of Ti and Ni on silicone substrate.
 //! Ti is 70 angstroms thick, Ni is 30 angstroms thick.
diff --git a/Core/StandardSamples/ResonatorBuilder.cpp b/Core/StandardSamples/ResonatorBuilder.cpp
index e655301f439b84fbc027d588baef2f3d37a2471f..5c7b1124715cd5c6afae01fe4d9a88b4fa12a9a6 100644
--- a/Core/StandardSamples/ResonatorBuilder.cpp
+++ b/Core/StandardSamples/ResonatorBuilder.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ResonatorBuilder.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Units.h"
+#include "Core/StandardSamples/ResonatorBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/Units.h"
 #include <memory>
 
 ResonatorBuilder::ResonatorBuilder() : IMultiLayerBuilder(), m_l_ti(13.0 * Units::nm)
diff --git a/Core/StandardSamples/ResonatorBuilder.h b/Core/StandardSamples/ResonatorBuilder.h
index ea632eeb10d2af821cd6d652c34523952c0628fb..d48bdada7dc4dc62017eeeda74ec9bf2eda77d39 100644
--- a/Core/StandardSamples/ResonatorBuilder.h
+++ b/Core/StandardSamples/ResonatorBuilder.h
@@ -15,7 +15,7 @@
 #ifndef RESONATORBUILDER_H
 #define RESONATORBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: multilayer with Ti/Pt layers sequence.
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/RipplesBuilder.cpp b/Core/StandardSamples/RipplesBuilder.cpp
index 95605e5c5c0744db807d1c419ddb4dead4e5c776..3707d8a8233f8220720ca6ad79f882d5094684bf 100644
--- a/Core/StandardSamples/RipplesBuilder.cpp
+++ b/Core/StandardSamples/RipplesBuilder.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "RipplesBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorRipple1.h"
-#include "FormFactorRipple2.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/RipplesBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorRipple1.h"
+#include "Core/HardParticle/FormFactorRipple2.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 CosineRippleBuilder::CosineRippleBuilder() {}
 
diff --git a/Core/StandardSamples/RipplesBuilder.h b/Core/StandardSamples/RipplesBuilder.h
index d87ff27fd403725518d4f68cb3821f065a29ec51..a0b17c65fa071e611f9b92ea8776a971549a5efe 100644
--- a/Core/StandardSamples/RipplesBuilder.h
+++ b/Core/StandardSamples/RipplesBuilder.h
@@ -15,7 +15,7 @@
 #ifndef RIPPLESBUILDER_H
 #define RIPPLESBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: cosine ripple within the 1D-paracrystal model.
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/RotatedPyramidsBuilder.cpp b/Core/StandardSamples/RotatedPyramidsBuilder.cpp
index ccc75ffc2861434438337d3e91eeef64bbbe220a..ceaf6e931d0458339d18ac71a765d53da9d37a89 100644
--- a/Core/StandardSamples/RotatedPyramidsBuilder.cpp
+++ b/Core/StandardSamples/RotatedPyramidsBuilder.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "RotatedPyramidsBuilder.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorPyramid.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/RotatedPyramidsBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorPyramid.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 RotatedPyramidsBuilder::RotatedPyramidsBuilder()
     : m_length(10 * Units::nanometer), m_height(5 * Units::nanometer),
diff --git a/Core/StandardSamples/RotatedPyramidsBuilder.h b/Core/StandardSamples/RotatedPyramidsBuilder.h
index 96f061d423913b2fbbf849c86267a7069d6e6574..79980342d32ac687562b346e9277b42892680cf3 100644
--- a/Core/StandardSamples/RotatedPyramidsBuilder.h
+++ b/Core/StandardSamples/RotatedPyramidsBuilder.h
@@ -15,7 +15,7 @@
 #ifndef ROTATEDPYRAMIDSBUILDER_H
 #define ROTATEDPYRAMIDSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: Pyramids, rotated pyramids on top of substrate (IsGISAXS example #9)
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/SampleBuilderFactory.cpp b/Core/StandardSamples/SampleBuilderFactory.cpp
index 9959bc3c37bf76d32d4a74ac0f4c2ecb7d3927a9..9820d94db5528ec48cc252bf60f814ea095fbb1c 100644
--- a/Core/StandardSamples/SampleBuilderFactory.cpp
+++ b/Core/StandardSamples/SampleBuilderFactory.cpp
@@ -12,40 +12,40 @@
 //
 // ************************************************************************** //
 
-#include "SampleBuilderFactory.h"
-#include "BoxCompositionBuilder.h"
-#include "BoxesSquareLatticeBuilder.h"
-#include "CoreShellParticleBuilder.h"
-#include "CustomMorphologyBuilder.h"
-#include "CylindersAndPrismsBuilder.h"
-#include "CylindersBuilder.h"
-#include "HomogeneousMultilayerBuilder.h"
-#include "LatticeBuilder.h"
-#include "LayersWithAbsorptionBuilder.h"
-#include "LayersWithAbsorptionBySLDBuilder.h"
-#include "MagneticLayersBuilder.h"
-#include "MagneticParticlesBuilder.h"
-#include "MesoCrystalBuilder.h"
-#include "MultiLayerWithNCRoughnessBuilder.h"
-#include "MultiLayerWithRoughnessBuilder.h"
-#include "MultipleLayoutBuilder.h"
-#include "ParaCrystalBuilder.h"
-#include "ParticleCompositionBuilder.h"
-#include "ParticleDistributionsBuilder.h"
-#include "ParticleInTheAirBuilder.h"
-#include "PercusYevickBuilder.h"
-#include "PlainMultiLayerBySLDBuilder.h"
-#include "RealParameter.h"
-#include "ResonatorBuilder.h"
-#include "RipplesBuilder.h"
-#include "RotatedPyramidsBuilder.h"
-#include "SizeDistributionModelsBuilder.h"
-#include "SlicedCylindersBuilder.h"
-#include "SlicedParticleBuilder.h"
-#include "ThickAbsorptiveSampleBuilder.h"
-#include "TransformationsBuilder.h"
-#include "TwoDimLatticeBuilder.h"
-#include "TwoLayerRoughnessBuilder.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/StandardSamples/BoxCompositionBuilder.h"
+#include "Core/StandardSamples/BoxesSquareLatticeBuilder.h"
+#include "Core/StandardSamples/CoreShellParticleBuilder.h"
+#include "Core/StandardSamples/CustomMorphologyBuilder.h"
+#include "Core/StandardSamples/CylindersAndPrismsBuilder.h"
+#include "Core/StandardSamples/CylindersBuilder.h"
+#include "Core/StandardSamples/HomogeneousMultilayerBuilder.h"
+#include "Core/StandardSamples/LatticeBuilder.h"
+#include "Core/StandardSamples/LayersWithAbsorptionBuilder.h"
+#include "Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h"
+#include "Core/StandardSamples/MagneticLayersBuilder.h"
+#include "Core/StandardSamples/MagneticParticlesBuilder.h"
+#include "Core/StandardSamples/MesoCrystalBuilder.h"
+#include "Core/StandardSamples/MultiLayerWithNCRoughnessBuilder.h"
+#include "Core/StandardSamples/MultiLayerWithRoughnessBuilder.h"
+#include "Core/StandardSamples/MultipleLayoutBuilder.h"
+#include "Core/StandardSamples/ParaCrystalBuilder.h"
+#include "Core/StandardSamples/ParticleCompositionBuilder.h"
+#include "Core/StandardSamples/ParticleDistributionsBuilder.h"
+#include "Core/StandardSamples/ParticleInTheAirBuilder.h"
+#include "Core/StandardSamples/PercusYevickBuilder.h"
+#include "Core/StandardSamples/PlainMultiLayerBySLDBuilder.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/StandardSamples/ResonatorBuilder.h"
+#include "Core/StandardSamples/RipplesBuilder.h"
+#include "Core/StandardSamples/RotatedPyramidsBuilder.h"
+#include "Core/StandardSamples/SizeDistributionModelsBuilder.h"
+#include "Core/StandardSamples/SlicedCylindersBuilder.h"
+#include "Core/StandardSamples/SlicedParticleBuilder.h"
+#include "Core/StandardSamples/ThickAbsorptiveSampleBuilder.h"
+#include "Core/StandardSamples/TransformationsBuilder.h"
+#include "Core/StandardSamples/TwoDimLatticeBuilder.h"
+#include "Core/StandardSamples/TwoLayerRoughnessBuilder.h"
 
 SampleBuilderFactory::SampleBuilderFactory()
 {
diff --git a/Core/StandardSamples/SampleBuilderFactory.h b/Core/StandardSamples/SampleBuilderFactory.h
index 9b21c77747285000930504f462a4e6c8cfc70bf9..9c2aa505d35f4c3f4b1dfae34af16dac7c0a825a 100644
--- a/Core/StandardSamples/SampleBuilderFactory.h
+++ b/Core/StandardSamples/SampleBuilderFactory.h
@@ -15,8 +15,8 @@
 #ifndef SAMPLEBUILDERFACTORY_H
 #define SAMPLEBUILDERFACTORY_H
 
-#include "IFactory.h"
-#include "IMultiLayerBuilder.h"
+#include "Core/StandardSamples/IFactory.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class MultiLayer;
 
diff --git a/Core/StandardSamples/SampleComponents.cpp b/Core/StandardSamples/SampleComponents.cpp
index 648ddd4c674828a11dfdab58ce0daaccdc178ee2..f87273f8418fc9dd0b123f00315c3977b71a2b4e 100644
--- a/Core/StandardSamples/SampleComponents.cpp
+++ b/Core/StandardSamples/SampleComponents.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SampleComponents.h"
-#include "BornAgainNamespace.h"
-#include "HardParticles.h"
-#include "Units.h"
+#include "Core/StandardSamples/SampleComponents.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Core/Parametrization/Units.h"
 
 // ************************************************************************** //
 FTDistribution2DComponents::FTDistribution2DComponents()
diff --git a/Core/StandardSamples/SampleComponents.h b/Core/StandardSamples/SampleComponents.h
index eafb02d5f3c68e8b89ccfcdb785c62ecc9266a30..e2f59556be9bc1a2e8221901ad6a9cc47a49c5bb 100644
--- a/Core/StandardSamples/SampleComponents.h
+++ b/Core/StandardSamples/SampleComponents.h
@@ -15,8 +15,8 @@
 #ifndef SAMPLECOMPONENTS_H
 #define SAMPLECOMPONENTS_H
 
-#include "FTDistributions2D.h"
-#include "IRegistry.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/StandardSamples/IRegistry.h"
 
 //! @class FTDistribution2DComponents
 //! @brief Predefined Fourier transformed distributions for functional tests.
diff --git a/Core/StandardSamples/SimulationFactory.cpp b/Core/StandardSamples/SimulationFactory.cpp
index 698fc2118efcfd9e9d6a5cfaa74b6ed384442ea5..37955bb21e817c87e7ecf69cd2a485fae1ecede5 100644
--- a/Core/StandardSamples/SimulationFactory.cpp
+++ b/Core/StandardSamples/SimulationFactory.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SimulationFactory.h"
-#include "DepthProbeSimulation.h"
-#include "GISASSimulation.h"
-#include "OffSpecSimulation.h"
-#include "RealParameter.h"
-#include "SpecularSimulation.h"
-#include "StandardSimulations.h"
+#include "Core/StandardSamples/SimulationFactory.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/StandardSamples/StandardSimulations.h"
 
 SimulationFactory::SimulationFactory()
 {
diff --git a/Core/StandardSamples/SimulationFactory.h b/Core/StandardSamples/SimulationFactory.h
index e289c14c2a70d2be353bc4af56c8b9cfd096111e..5b8077d3b9bf095a2d32d3bae656819a3ae77cf1 100644
--- a/Core/StandardSamples/SimulationFactory.h
+++ b/Core/StandardSamples/SimulationFactory.h
@@ -15,8 +15,8 @@
 #ifndef SIMULATIONFACTORY_H
 #define SIMULATIONFACTORY_H
 
-#include "GISASSimulation.h"
-#include "IFactory.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/StandardSamples/IFactory.h"
 #include <string>
 
 //! Registry to create standard pre-defined simulations.
diff --git a/Core/StandardSamples/SizeDistributionModelsBuilder.cpp b/Core/StandardSamples/SizeDistributionModelsBuilder.cpp
index 8491318e85b94930088379ae7471b036ddf4b60e..495cb2c857ee9c0361cecd87d2a07de5fe19cedc 100644
--- a/Core/StandardSamples/SizeDistributionModelsBuilder.cpp
+++ b/Core/StandardSamples/SizeDistributionModelsBuilder.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "SizeDistributionModelsBuilder.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "FormFactorCylinder.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "ParameterPattern.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/SizeDistributionModelsBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayer* SizeDistributionDAModelBuilder::buildSample() const
 {
diff --git a/Core/StandardSamples/SizeDistributionModelsBuilder.h b/Core/StandardSamples/SizeDistributionModelsBuilder.h
index 04b8acd324730bcce1c9cde4ae693c7c1387c291..1caa4519f467f13341d56de00f27eaf7d6c1f824 100644
--- a/Core/StandardSamples/SizeDistributionModelsBuilder.h
+++ b/Core/StandardSamples/SizeDistributionModelsBuilder.h
@@ -15,7 +15,7 @@
 #ifndef SIZEDISTRIBUTIONMODELSBUILDER_H
 #define SIZEDISTRIBUTIONMODELSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Creates the sample demonstrating size distribution model in decoupling approximation.
 //! Equivalent of Examples/python/simulation/ex03_InterferenceFunctions/ApproximationDA.py
diff --git a/Core/StandardSamples/SlicedCylindersBuilder.cpp b/Core/StandardSamples/SlicedCylindersBuilder.cpp
index 59d1b67ce500340de2dece36fdfc770e2580f1c9..f7e38785d028af22ec9647705512deb12a2509d2 100644
--- a/Core/StandardSamples/SlicedCylindersBuilder.cpp
+++ b/Core/StandardSamples/SlicedCylindersBuilder.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "SlicedCylindersBuilder.h"
-#include "FormFactorCylinder.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "Units.h"
+#include "Core/StandardSamples/SlicedCylindersBuilder.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/Core/StandardSamples/SlicedCylindersBuilder.h b/Core/StandardSamples/SlicedCylindersBuilder.h
index 9ff1af5693a2c145254171319d6b870ed7bbc3fd..ccfeaaea849dfe86cc4fcfdb49c25375dfc9c6d0 100644
--- a/Core/StandardSamples/SlicedCylindersBuilder.h
+++ b/Core/StandardSamples/SlicedCylindersBuilder.h
@@ -15,7 +15,7 @@
 #ifndef SLICEDCYLINDERSBUILDER_H
 #define SLICEDCYLINDERSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: cylinders on a silicon substrate
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/SlicedParticleBuilder.cpp b/Core/StandardSamples/SlicedParticleBuilder.cpp
index c8912b6df61a53d9d252c21f9481a48defda33cf..9e5a53bd1a43d37366a9fae3cd28d65f21b652a3 100644
--- a/Core/StandardSamples/SlicedParticleBuilder.cpp
+++ b/Core/StandardSamples/SlicedParticleBuilder.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "SlicedParticleBuilder.h"
-#include "FormFactorFullSphere.h"
-#include "FormFactorTruncatedSphere.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleLayout.h"
-#include "Transform3D.h"
-#include "Units.h"
+#include "Core/StandardSamples/SlicedParticleBuilder.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/HardParticle/FormFactorTruncatedSphere.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Vector/Transform3D.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayer* SlicedCompositionBuilder::buildSample() const
 {
diff --git a/Core/StandardSamples/SlicedParticleBuilder.h b/Core/StandardSamples/SlicedParticleBuilder.h
index 9b603c91cf226e3b7257f4a065a0774aaead820a..d6ead50112cb897aba51b6dbbd63779819c12f2f 100644
--- a/Core/StandardSamples/SlicedParticleBuilder.h
+++ b/Core/StandardSamples/SlicedParticleBuilder.h
@@ -15,7 +15,7 @@
 #ifndef SLICEDPARTICLEBUILDER_H
 #define SLICEDPARTICLEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: spherical composition made of top+bottom spherical cups
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/StandardSimulations.cpp b/Core/StandardSamples/StandardSimulations.cpp
index 515f652eb3327022eb95109b7d76c49917aeb3fd..c015bb8f71065b0d2622b98abe1b6b85e12a4b3f 100644
--- a/Core/StandardSamples/StandardSimulations.cpp
+++ b/Core/StandardSamples/StandardSimulations.cpp
@@ -12,32 +12,32 @@
 //
 // ************************************************************************** //
 
-#include "StandardSimulations.h"
-#include "AngularSpecScan.h"
-#include "BornAgainNamespace.h"
-#include "ConstantBackground.h"
-#include "DepthProbeSimulation.h"
-#include "Distributions.h"
-#include "Ellipse.h"
-#include "FixedBinAxis.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "GISASSimulation.h"
-#include "IsGISAXSDetector.h"
-#include "Line.h"
-#include "OffSpecSimulation.h"
-#include "ParameterPattern.h"
-#include "Polygon.h"
-#include "QSpecScan.h"
-#include "RangedDistributions.h"
-#include "RealParameter.h"
-#include "Rectangle.h"
-#include "RectangularDetector.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "SampleBuilderFactory.h"
-#include "ScanResolution.h"
-#include "SpecularSimulation.h"
-#include "Units.h"
+#include "Core/StandardSamples/StandardSimulations.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Computation/ConstantBackground.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Mask/Ellipse.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Instrument/IsGISAXSDetector.h"
+#include "Core/Mask/Line.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Parametrization/Units.h"
 #include <memory>
 
 namespace
diff --git a/Core/StandardSamples/StandardSimulations.h b/Core/StandardSamples/StandardSimulations.h
index 43bfacc62d3bc5eb758efbd74d9d3f181540c306..d28fa0e43563b9cdf302e9a058d21260515571cf 100644
--- a/Core/StandardSamples/StandardSimulations.h
+++ b/Core/StandardSamples/StandardSimulations.h
@@ -15,7 +15,7 @@
 #ifndef STANDARDSIMULATIONS_H
 #define STANDARDSIMULATIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class DepthProbeSimulation;
 class GISASSimulation;
diff --git a/Core/StandardSamples/ThickAbsorptiveSampleBuilder.cpp b/Core/StandardSamples/ThickAbsorptiveSampleBuilder.cpp
index 126a6b0b7fdd039a00263e336a50a172eefa1a93..6ee5fbca1361ff9d6bc21707ded87ff9e3944396 100644
--- a/Core/StandardSamples/ThickAbsorptiveSampleBuilder.cpp
+++ b/Core/StandardSamples/ThickAbsorptiveSampleBuilder.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ThickAbsorptiveSampleBuilder.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Units.h"
+#include "Core/StandardSamples/ThickAbsorptiveSampleBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/Units.h"
 
 ThickAbsorptiveSampleBuilder::ThickAbsorptiveSampleBuilder() : IMultiLayerBuilder() {}
 
diff --git a/Core/StandardSamples/ThickAbsorptiveSampleBuilder.h b/Core/StandardSamples/ThickAbsorptiveSampleBuilder.h
index 665d99da53700cbaaf1a22b8b5259d719a968b24..cf5fc48d55dafa59c76638da3608071cb4390092 100644
--- a/Core/StandardSamples/ThickAbsorptiveSampleBuilder.h
+++ b/Core/StandardSamples/ThickAbsorptiveSampleBuilder.h
@@ -15,7 +15,7 @@
 #ifndef THICKABSORPTIVESAMPLEBUILDER_H
 #define THICKABSORPTIVESAMPLEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class BA_CORE_API_ ThickAbsorptiveSampleBuilder : public IMultiLayerBuilder
 {
diff --git a/Core/StandardSamples/TransformationsBuilder.cpp b/Core/StandardSamples/TransformationsBuilder.cpp
index e5246a079dfb70c4deb275f05888242b7db58fcf..90654927d71b42b3d8155cd19311b2294adbcd97 100644
--- a/Core/StandardSamples/TransformationsBuilder.cpp
+++ b/Core/StandardSamples/TransformationsBuilder.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "TransformationsBuilder.h"
-#include "FormFactorBox.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/TransformationsBuilder.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayer* TransformBoxBuilder::buildSample() const
 {
diff --git a/Core/StandardSamples/TransformationsBuilder.h b/Core/StandardSamples/TransformationsBuilder.h
index 815c30f753df4488828aeb1b2e8198fcc14990e7..7e30787959f20ed9ec5e1517b27e52b91bb62891 100644
--- a/Core/StandardSamples/TransformationsBuilder.h
+++ b/Core/StandardSamples/TransformationsBuilder.h
@@ -15,7 +15,7 @@
 #ifndef TRANSFORMATIONSBUILDER_H
 #define TRANSFORMATIONSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Rotated box in 3 layers system.
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/TwoDimLatticeBuilder.cpp b/Core/StandardSamples/TwoDimLatticeBuilder.cpp
index 7ef7b7d79bda60513e9bf7ad5ca0db6f0373e988..61d68c7268b0746c7d59b9fafcb2f7c7364ea83f 100644
--- a/Core/StandardSamples/TwoDimLatticeBuilder.cpp
+++ b/Core/StandardSamples/TwoDimLatticeBuilder.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "TwoDimLatticeBuilder.h"
-#include "FormFactorCylinder.h"
-#include "InterferenceFunction2DLattice.h"
-#include "InterferenceFunction2DSuperLattice.h"
-#include "InterferenceFunctionFinite2DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleLayout.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/TwoDimLatticeBuilder.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Aggregate/InterferenceFunction2DSuperLattice.h"
+#include "Core/Aggregate/InterferenceFunctionFinite2DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 MultiLayer* Basic2DLatticeBuilder::buildSample() const
 {
diff --git a/Core/StandardSamples/TwoDimLatticeBuilder.h b/Core/StandardSamples/TwoDimLatticeBuilder.h
index 406e4558077e24ec7009767656c99d02c049a2c3..b16c38f83d85a9fc33f0cdbeed6531b801ea50b7 100644
--- a/Core/StandardSamples/TwoDimLatticeBuilder.h
+++ b/Core/StandardSamples/TwoDimLatticeBuilder.h
@@ -15,7 +15,7 @@
 #ifndef TWODIMLATTICEBUILDER_H
 #define TWODIMLATTICEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 //! Builds sample: 2D lattice with arbitrary angle and different lattice length_1 and length_2.
 //! @ingroup standard_samples
diff --git a/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp b/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp
index 8293abe66435107348371290f65fa865e5a79a7a..13a9516cb1268c64394875c7eea08adc300e42e2 100644
--- a/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp
+++ b/Core/StandardSamples/TwoLayerRoughnessBuilder.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "TwoLayerRoughnessBuilder.h"
-#include "BornAgainNamespace.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "RealParameter.h"
-#include "Units.h"
+#include "Core/StandardSamples/TwoLayerRoughnessBuilder.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
 
 TwoLayerRoughnessBuilder::TwoLayerRoughnessBuilder()
     : m_sigma(1.0 * Units::nanometer), m_hurst(0.3), m_lateralCorrLength(5.0 * Units::nanometer)
diff --git a/Core/StandardSamples/TwoLayerRoughnessBuilder.h b/Core/StandardSamples/TwoLayerRoughnessBuilder.h
index c1293ca9ea386565321a7eb832c21eca50d82dae..e5a5a9465584f51b17bbe81c2337b32682b53724 100644
--- a/Core/StandardSamples/TwoLayerRoughnessBuilder.h
+++ b/Core/StandardSamples/TwoLayerRoughnessBuilder.h
@@ -15,7 +15,7 @@
 #ifndef TWOLAYERROUGHNESSBUILDER_H
 #define TWOLAYERROUGHNESSBUILDER_H
 
-#include "IMultiLayerBuilder.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
 
 class ISample;
 
diff --git a/Core/Tools/FileSystemUtils.cpp b/Core/Tools/FileSystemUtils.cpp
index 6c164478eaabeec062d9fc1bf159c8cad2ed6459..84706b72ec6eac6064bc98a3da890d4210fe4bde 100644
--- a/Core/Tools/FileSystemUtils.cpp
+++ b/Core/Tools/FileSystemUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FileSystemUtils.h"
-#include "Exceptions.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/Basics/Exceptions.h"
 #include <boost/filesystem.hpp>
 #include <cassert>
 #include <codecvt>
diff --git a/Core/Tools/FileSystemUtils.h b/Core/Tools/FileSystemUtils.h
index f79cb1ce938753a6abb75e8f344e7d73ac0d2bbc..b2f733fbc73ade3b6599333a62de4300a11c4b68 100644
--- a/Core/Tools/FileSystemUtils.h
+++ b/Core/Tools/FileSystemUtils.h
@@ -15,7 +15,7 @@
 #ifndef FILESYSTEMUTILS_H
 #define FILESYSTEMUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 #include <vector>
 
diff --git a/Core/Tools/Integrator.cpp b/Core/Tools/Integrator.cpp
index a4cfb85f0ee43e4a1928bd415ba61e199e1c873f..29370fe52744a97df17f24b2a60d5d274b3b9bc8 100644
--- a/Core/Tools/Integrator.cpp
+++ b/Core/Tools/Integrator.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Integrator.h"
+#include "Core/Tools/Integrator.h"
 
 RealIntegrator::RealIntegrator()
     : m_gsl_f{m_Cfunction, nullptr}, m_workspace{gsl_integration_workspace_alloc(200)}
diff --git a/Core/Tools/Integrator.h b/Core/Tools/Integrator.h
index 269b034b3131376471d0e138f02745fd927028d3..5807388f874dec832e9f03801db55edc78942f56 100644
--- a/Core/Tools/Integrator.h
+++ b/Core/Tools/Integrator.h
@@ -15,8 +15,8 @@
 #ifndef INTEGRATOR_H
 #define INTEGRATOR_H
 
-#include "WinDllMacros.h"
-#include "Complex.h"
+#include "Wrap/WinDllMacros.h"
+#include "Core/Basics/Complex.h"
 #include <functional>
 #include <gsl/gsl_integration.h>
 
diff --git a/Core/Tools/MathFunctions.cpp b/Core/Tools/MathFunctions.cpp
index 8c25292c2b19b0946d92da6e188d1d84f027d291..8a518ca0584c89f81daa96faa5b28501129c47bf 100644
--- a/Core/Tools/MathFunctions.cpp
+++ b/Core/Tools/MathFunctions.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MathFunctions.h"
-#include "MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Basics/MathConstants.h"
 #include <chrono>
 #include <cstring>
 #include <fftw3.h>
diff --git a/Core/Tools/MathFunctions.h b/Core/Tools/MathFunctions.h
index 61357192383257e9d8e0c666231de27b7485a850..908d7b517bd3f5cdae2f5b6b8bcef56fcac92f56 100644
--- a/Core/Tools/MathFunctions.h
+++ b/Core/Tools/MathFunctions.h
@@ -15,8 +15,8 @@
 #ifndef MATHFUNCTIONS_H
 #define MATHFUNCTIONS_H
 
-#include "Complex.h"
-#include "WinDllMacros.h"
+#include "Core/Basics/Complex.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 //! Various mathematical functions.
diff --git a/Core/Tools/Numeric.cpp b/Core/Tools/Numeric.cpp
index 8d32688672e993ece14fec369a5fb125b7afaea4..e942276c5a0ab8975397b7e6d0f9aeb82bcfb8ec 100644
--- a/Core/Tools/Numeric.cpp
+++ b/Core/Tools/Numeric.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Numeric.h"
+#include "Core/Tools/Numeric.h"
 #include <algorithm>
 #include <cmath>
 #include <limits>
diff --git a/Core/Tools/Numeric.h b/Core/Tools/Numeric.h
index a875d0123b574a76d1a1240724b4ddabe78bdf21..e1ec0be41cdaf30c41b037d99d33606fa79fd7c8 100644
--- a/Core/Tools/Numeric.h
+++ b/Core/Tools/Numeric.h
@@ -15,7 +15,7 @@
 #ifndef NUMERIC_H
 #define NUMERIC_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <limits>
 
 //! Floating-point epsilon, tolerances, almost-equal.
diff --git a/Core/Tools/Precomputed.h b/Core/Tools/Precomputed.h
index 8bccd35a3456621024b794413daae982fa2e7758..ea29c8f098b1ee6872a3a9e67fd7a1cbee61151c 100644
--- a/Core/Tools/Precomputed.h
+++ b/Core/Tools/Precomputed.h
@@ -15,7 +15,7 @@
 #ifndef PRECOMPUTED_H
 #define PRECOMPUTED_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <array>
 #include <utility>
 #include <vector>
diff --git a/Core/Tools/PyEmbeddedUtils.cpp b/Core/Tools/PyEmbeddedUtils.cpp
index 1195e6e17641b3042975c4cd0378e5e865b90eba..e66c752e149bcac381fcb5144335741d212400e1 100644
--- a/Core/Tools/PyEmbeddedUtils.cpp
+++ b/Core/Tools/PyEmbeddedUtils.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "PyEmbeddedUtils.h"
-#include "MultiLayer.h"
-#include "PythonCore.h"
-#include "PythonFormatting.h"
-#include "SysUtils.h"
+#include "Core/Tools/PyEmbeddedUtils.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Tools/PythonCore.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Tools/SysUtils.h"
 #include <iostream>
 #include <stdexcept>
 
diff --git a/Core/Tools/PyEmbeddedUtils.h b/Core/Tools/PyEmbeddedUtils.h
index a15a8faa240d9f58c9f880f422ae590063f3f6fb..38bc7ead083917666c25d714a2abf5aabbd29973 100644
--- a/Core/Tools/PyEmbeddedUtils.h
+++ b/Core/Tools/PyEmbeddedUtils.h
@@ -15,8 +15,8 @@
 #ifndef PYEMBEDDEDUTILS_H
 #define PYEMBEDDEDUTILS_H
 
-#include "PyObject.h"
-#include "WinDllMacros.h"
+#include "Core/Tools/PyObject.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <string>
 #include <vector>
diff --git a/Core/Tools/PyImport.cpp b/Core/Tools/PyImport.cpp
index a3eedbb5bd5a306da9f72557a29c4f74f049419f..acbef104ec0fb7ac0f0e91b90299fd28a48e3ee6 100644
--- a/Core/Tools/PyImport.cpp
+++ b/Core/Tools/PyImport.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "PyImport.h"
-#include "MultiLayer.h"
-#include "PyEmbeddedUtils.h"
-#include "PythonCore.h"
+#include "Core/Tools/PyImport.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Tools/PyEmbeddedUtils.h"
+#include "Core/Tools/PythonCore.h"
 
 namespace
 {
diff --git a/Core/Tools/PyImport.h b/Core/Tools/PyImport.h
index bc8fb9709832d7c6806d0d70814c9cdaee26568f..3042ef94805d50b3b5c8de96d12110aef00cf8c0 100644
--- a/Core/Tools/PyImport.h
+++ b/Core/Tools/PyImport.h
@@ -15,7 +15,7 @@
 #ifndef PYIMPORT_H
 #define PYIMPORT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <string>
 #include <vector>
diff --git a/Core/Tools/SpectrumUtils.cpp b/Core/Tools/SpectrumUtils.cpp
index 1b4d4ad741a3c82388a7f4857d04ea1cc029aeaa..2c306df108ef98a021733299e4c7168896220457 100644
--- a/Core/Tools/SpectrumUtils.cpp
+++ b/Core/Tools/SpectrumUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SpectrumUtils.h"
-#include "ArrayUtils.h"
+#include "Core/Tools/SpectrumUtils.h"
+#include "Core/Instrument/ArrayUtils.h"
 #include "tspectrum.h"
 #include <cmath>
 
diff --git a/Core/Tools/SpectrumUtils.h b/Core/Tools/SpectrumUtils.h
index e8997da36545ff59ab433764d4d7e8e7a1a12cd9..c0821f9d029e7efe7e37585b77315d8e5917165e 100644
--- a/Core/Tools/SpectrumUtils.h
+++ b/Core/Tools/SpectrumUtils.h
@@ -15,8 +15,8 @@
 #ifndef SPECTRUMUTILS_H
 #define SPECTRUMUTILS_H
 
-#include "Histogram2D.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 #include <vector>
 
diff --git a/Core/Tools/SysUtils.cpp b/Core/Tools/SysUtils.cpp
index 3d89e0a1c4ed9208d0d5497aec49a79f5cd2a97e..6985d5b8e71063252eaceaa3900c956103634c7e 100644
--- a/Core/Tools/SysUtils.cpp
+++ b/Core/Tools/SysUtils.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SysUtils.h"
+#include "Core/Tools/SysUtils.h"
 #include <chrono>
 #include <iomanip>
 #include <iostream>
diff --git a/Core/Tools/SysUtils.h b/Core/Tools/SysUtils.h
index 73e7560280233ee29d343018833ee4808dda33a5..102b13c5020d7cf1b4243a76aea1d109849b00bd 100644
--- a/Core/Tools/SysUtils.h
+++ b/Core/Tools/SysUtils.h
@@ -15,7 +15,7 @@
 #ifndef SYSUTILS_H
 #define SYSUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 //! Utility functions getCurrentDateAndTime, enableFloatingPointExceptions.
diff --git a/Core/Vector/BasicVector3D.cpp b/Core/Vector/BasicVector3D.cpp
index 1e1d57ea568ddde828822963820695b632d80b98..1e7d7ab00d1032d23cdac65d665b879f1413fedf 100644
--- a/Core/Vector/BasicVector3D.cpp
+++ b/Core/Vector/BasicVector3D.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "BasicVector3D.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
+#include "Core/Vector/BasicVector3D.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
 
 typedef std::complex<double> complex_t;
 
diff --git a/Core/Vector/BasicVector3D.h b/Core/Vector/BasicVector3D.h
index adf83f532e7c7d5c3ced750e3c6fbe3f4bc384a4..89b9ad9bdc2f8ca2657c8d474bbe066e2fe40fb6 100644
--- a/Core/Vector/BasicVector3D.h
+++ b/Core/Vector/BasicVector3D.h
@@ -19,7 +19,7 @@
 //! then reworked beyond recongnition. Removed split of point and vector semantics.
 //! Transforms are relegated to a separate class Transform3D.
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <complex>
 
 //! Three-dimensional vector template, for use with integer, double, or complex components.
diff --git a/Core/Vector/Transform3D.cpp b/Core/Vector/Transform3D.cpp
index 265914d173b3013e52f9f7cd0b00bfa50f6190d2..8ca7a0422b48445d5bc55261fff443ad5f58d7aa 100644
--- a/Core/Vector/Transform3D.cpp
+++ b/Core/Vector/Transform3D.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Transform3D.h"
+#include "Core/Vector/Transform3D.h"
 #include <Eigen/LU>
 
 Transform3D::Transform3D()
diff --git a/Core/Vector/Transform3D.h b/Core/Vector/Transform3D.h
index 35b8c93378f6a576177c858528f511649cfc078b..624b4964aa3a03cd4fbf03ad71630f2e4d3231fa 100644
--- a/Core/Vector/Transform3D.h
+++ b/Core/Vector/Transform3D.h
@@ -15,9 +15,9 @@
 #ifndef TRANSFORM3D_H
 #define TRANSFORM3D_H
 
-#include "Complex.h"
-#include "EigenCore.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Vector/Vectors3D.h"
 
 #include <vector>
 
diff --git a/Core/Vector/Vectors3D.h b/Core/Vector/Vectors3D.h
index 7485bc08db553a1441b1bfdb929f77a9e1c0314f..98aaeb193c495e3e3a229899df6747c162e219d6 100644
--- a/Core/Vector/Vectors3D.h
+++ b/Core/Vector/Vectors3D.h
@@ -15,7 +15,7 @@
 #ifndef VECTORS3D_H
 #define VECTORS3D_H
 
-#include "BasicVector3D.h"
+#include "Core/Vector/BasicVector3D.h"
 
 typedef BasicVector3D<int> ivector_t;
 typedef BasicVector3D<double> kvector_t;
diff --git a/Core/Vector/WavevectorInfo.cpp b/Core/Vector/WavevectorInfo.cpp
index 6622c135dfde673196de74a20e2ea55e53bfc70a..db2ff76ff6988e27d7b3b0112064bc0f16b2a441 100644
--- a/Core/Vector/WavevectorInfo.cpp
+++ b/Core/Vector/WavevectorInfo.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "WavevectorInfo.h"
-#include "Transform3D.h"
+#include "Core/Vector/WavevectorInfo.h"
+#include "Core/Vector/Transform3D.h"
 
 // TODO: can be removed when IFormFactor::volume() is refactored
 // (static function is provided to easily track usage of default constructor)
diff --git a/Core/Vector/WavevectorInfo.h b/Core/Vector/WavevectorInfo.h
index b4c5d829b7277ea6809c8513dfb80a51c7430237..38eb3d429211dbc485dd2570f858e795759b8263 100644
--- a/Core/Vector/WavevectorInfo.h
+++ b/Core/Vector/WavevectorInfo.h
@@ -15,7 +15,7 @@
 #ifndef WAVEVECTORINFO_H
 #define WAVEVECTORINFO_H
 
-#include "Vectors3D.h"
+#include "Core/Vector/Vectors3D.h"
 
 class Transform3D;
 
diff --git a/Core/includeIncludes/FormFactors.h b/Core/includeIncludes/FormFactors.h
index 9edc0243bc27cac73e822bb95baa026162c084f6..1705fcb6eb45580c42b7552e1a405df53a20b69f 100644
--- a/Core/includeIncludes/FormFactors.h
+++ b/Core/includeIncludes/FormFactors.h
@@ -15,11 +15,11 @@
 #ifndef FORMFACTORS_H
 #define FORMFACTORS_H
 
-#include "FormFactorDecoratorMaterial.h"
-#include "FormFactorDecoratorPositionFactor.h"
-#include "FormFactorDecoratorRotation.h"
-#include "FormFactorWeighted.h"
-#include "HardParticles.h"
-#include "SoftParticles.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorMaterial.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorPositionFactor.h"
+#include "Core/DecoratedFormFactor/FormFactorDecoratorRotation.h"
+#include "Core/Particle/FormFactorWeighted.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Core/includeIncludes/SoftParticles.h"
 
 #endif // FORMFACTORS_H
diff --git a/Core/includeIncludes/HardParticles.h b/Core/includeIncludes/HardParticles.h
index 4b085c932811adb07dc9f89f0b0eb42acbe68ebc..460762425159acdfe90cb6fabe404f76eb3fb6ea 100644
--- a/Core/includeIncludes/HardParticles.h
+++ b/Core/includeIncludes/HardParticles.h
@@ -15,31 +15,31 @@
 #ifndef HARDPARTICLES_H
 #define HARDPARTICLES_H
 
-#include "FormFactorAnisoPyramid.h"
-#include "FormFactorBar.h"
-#include "FormFactorBox.h"
-#include "FormFactorCantellatedCube.h"
-#include "FormFactorCone.h"
-#include "FormFactorCone6.h"
-#include "FormFactorCuboctahedron.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorDodecahedron.h"
-#include "FormFactorDot.h"
-#include "FormFactorEllipsoidalCylinder.h"
-#include "FormFactorFullSphere.h"
-#include "FormFactorFullSpheroid.h"
-#include "FormFactorHemiEllipsoid.h"
-#include "FormFactorIcosahedron.h"
-#include "FormFactorLongBoxGauss.h"
-#include "FormFactorLongBoxLorentz.h"
-#include "FormFactorPrism3.h"
-#include "FormFactorPrism6.h"
-#include "FormFactorPyramid.h"
-#include "FormFactorRipple1.h"
-#include "FormFactorRipple2.h"
-#include "FormFactorTetrahedron.h"
-#include "FormFactorTruncatedCube.h"
-#include "FormFactorTruncatedSphere.h"
-#include "FormFactorTruncatedSpheroid.h"
+#include "Core/HardParticle/FormFactorAnisoPyramid.h"
+#include "Core/HardParticle/FormFactorBar.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/HardParticle/FormFactorCantellatedCube.h"
+#include "Core/HardParticle/FormFactorCone.h"
+#include "Core/HardParticle/FormFactorCone6.h"
+#include "Core/HardParticle/FormFactorCuboctahedron.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/HardParticle/FormFactorDodecahedron.h"
+#include "Core/HardParticle/FormFactorDot.h"
+#include "Core/HardParticle/FormFactorEllipsoidalCylinder.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/HardParticle/FormFactorFullSpheroid.h"
+#include "Core/HardParticle/FormFactorHemiEllipsoid.h"
+#include "Core/HardParticle/FormFactorIcosahedron.h"
+#include "Core/HardParticle/FormFactorLongBoxGauss.h"
+#include "Core/HardParticle/FormFactorLongBoxLorentz.h"
+#include "Core/HardParticle/FormFactorPrism3.h"
+#include "Core/HardParticle/FormFactorPrism6.h"
+#include "Core/HardParticle/FormFactorPyramid.h"
+#include "Core/HardParticle/FormFactorRipple1.h"
+#include "Core/HardParticle/FormFactorRipple2.h"
+#include "Core/HardParticle/FormFactorTetrahedron.h"
+#include "Core/HardParticle/FormFactorTruncatedCube.h"
+#include "Core/HardParticle/FormFactorTruncatedSphere.h"
+#include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
 
 #endif // HARDPARTICLES_H
diff --git a/Core/includeIncludes/InterferenceFunctions.h b/Core/includeIncludes/InterferenceFunctions.h
index 4ced90380e37a5d0aa59395060e7128f44af5433..4da995e43f7fdd340f4a99a9f137fec4bab2c4f2 100644
--- a/Core/includeIncludes/InterferenceFunctions.h
+++ b/Core/includeIncludes/InterferenceFunctions.h
@@ -15,16 +15,16 @@
 #ifndef INTERFERENCEFUNCTIONS_H
 #define INTERFERENCEFUNCTIONS_H
 
-#include "InterferenceFunction1DLattice.h"
-#include "InterferenceFunction2DLattice.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "InterferenceFunction2DSuperLattice.h"
-#include "InterferenceFunction3DLattice.h"
-#include "InterferenceFunctionFinite2DLattice.h"
-#include "InterferenceFunctionFinite3DLattice.h"
-#include "InterferenceFunctionHardDisk.h"
-#include "InterferenceFunctionNone.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "InterferenceFunctionTwin.h"
+#include "Core/Aggregate/InterferenceFunction1DLattice.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
+#include "Core/Aggregate/InterferenceFunction2DSuperLattice.h"
+#include "Core/Aggregate/InterferenceFunction3DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionFinite2DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionFinite3DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionHardDisk.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Aggregate/InterferenceFunctionTwin.h"
 
 #endif // INTERFERENCEFUNCTIONS_H
diff --git a/Core/includeIncludes/SoftParticles.h b/Core/includeIncludes/SoftParticles.h
index 62eb41a2c851f6fd4bdcd23abc84e0c7e2f6eaac..bf19e901b76f5bca247b7aafe0b69e088bae4890 100644
--- a/Core/includeIncludes/SoftParticles.h
+++ b/Core/includeIncludes/SoftParticles.h
@@ -15,13 +15,13 @@
 #ifndef SOFTPARTICLES_H
 #define SOFTPARTICLES_H
 
-#include "FormFactorDebyeBueche.h"
-#include "FormFactorGauss.h"
-#include "FormFactorLorentz.h"
-#include "FormFactorOrnsteinZernike.h"
-#include "FormFactorSphereGaussianRadius.h"
-#include "FormFactorSphereLogNormalRadius.h"
-#include "FormFactorSphereUniformRadius.h"
-#include "SoftParticles.h"
+#include "Core/SoftParticle/FormFactorDebyeBueche.h"
+#include "Core/SoftParticle/FormFactorGauss.h"
+#include "Core/SoftParticle/FormFactorLorentz.h"
+#include "Core/SoftParticle/FormFactorOrnsteinZernike.h"
+#include "Core/SoftParticle/FormFactorSphereGaussianRadius.h"
+#include "Core/SoftParticle/FormFactorSphereLogNormalRadius.h"
+#include "Core/SoftParticle/FormFactorSphereUniformRadius.h"
+#include "Core/includeIncludes/SoftParticles.h"
 
 #endif // SOFTPARTICLES_H
diff --git a/Examples/cpp/CylindersAndPrisms/CylindersAndPrisms.cpp b/Examples/cpp/CylindersAndPrisms/CylindersAndPrisms.cpp
index e0b5cc3ae549fe3da024b492b9d869624ae59ad4..abaabb255169a14ca56e755a5b4a9194142c96da 100644
--- a/Examples/cpp/CylindersAndPrisms/CylindersAndPrisms.cpp
+++ b/Examples/cpp/CylindersAndPrisms/CylindersAndPrisms.cpp
@@ -13,18 +13,18 @@
 //
 // ********************************************************************************************** //
 
-#include "FormFactorCylinder.h"
-#include "FormFactorPrism3.h"
-#include "GISASSimulation.h"
-#include "Histogram2D.h"
-#include "IntensityDataIOFactory.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "Simulation.h"
-#include "Units.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/HardParticle/FormFactorPrism3.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Parametrization/Units.h"
 
 int main()
 {
diff --git a/Fit/Kernel/FitOptions.cpp b/Fit/Kernel/FitOptions.cpp
index 0a920876bb53d8f12092ef6fac2fa472d4ca6879..d4b5d41cea1c50fe217da7a20d387feaf7692071 100644
--- a/Fit/Kernel/FitOptions.cpp
+++ b/Fit/Kernel/FitOptions.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "FitOptions.h"
+#include "Fit/Kernel/FitOptions.h"
 
 FitOptions::FitOptions() : m_deriv_epsilon(1e-09), m_step_factor(0.01) {}
 
diff --git a/Fit/Kernel/FitOptions.h b/Fit/Kernel/FitOptions.h
index 9cebf0dee2758b1ea92c1bef308824e8437f5338..b2efac5520beba30094ac7604085c6f058ad7671 100644
--- a/Fit/Kernel/FitOptions.h
+++ b/Fit/Kernel/FitOptions.h
@@ -15,7 +15,7 @@
 #ifndef FITOPTIONS_H
 #define FITOPTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! General fitting options.
 
diff --git a/Fit/Kernel/IFunctionAdapter.cpp b/Fit/Kernel/IFunctionAdapter.cpp
index 2a108cb520dff4046642781afdba103facc76b54..13972007af84451973ba33d6b65e68c6186fd8d7 100644
--- a/Fit/Kernel/IFunctionAdapter.cpp
+++ b/Fit/Kernel/IFunctionAdapter.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IFunctionAdapter.h"
+#include "Fit/Kernel/IFunctionAdapter.h"
 
 using namespace Fit;
 
diff --git a/Fit/Kernel/IFunctionAdapter.h b/Fit/Kernel/IFunctionAdapter.h
index ccb0f07cb7043059234bdfc7e0df371c408e8ab1..0b811dd254d5cbb127e9cb12defdc14c4b6f84f6 100644
--- a/Fit/Kernel/IFunctionAdapter.h
+++ b/Fit/Kernel/IFunctionAdapter.h
@@ -15,7 +15,7 @@
 #ifndef IFUNCTIONADAPTER_H
 #define IFUNCTIONADAPTER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 namespace Fit
 {
diff --git a/Fit/Kernel/Kernel.cpp b/Fit/Kernel/Kernel.cpp
index e122a873822a7b72edd498cd1537f4348179177c..8ddfa9c9b3d561a42eddb279f9f1f4e04af03727 100644
--- a/Fit/Kernel/Kernel.cpp
+++ b/Fit/Kernel/Kernel.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Kernel.h"
-#include "IMinimizer.h"
-#include "MinimizerFactory.h"
+#include "Fit/Kernel/Kernel.h"
+#include "Fit/Minimizer/IMinimizer.h"
+#include "Fit/Minimizer/MinimizerFactory.h"
 
 using namespace Fit;
 
diff --git a/Fit/Kernel/Kernel.h b/Fit/Kernel/Kernel.h
index 7dadf939f673a3c2a294b7f4c28cb092659a84c6..d1d43921426cb060f8f58e30bfb64f405ddfdfb4 100644
--- a/Fit/Kernel/Kernel.h
+++ b/Fit/Kernel/Kernel.h
@@ -15,11 +15,11 @@
 #ifndef KERNEL_H
 #define KERNEL_H
 
-#include "KernelTypes.h"
-#include "MinimizerResult.h"
-#include "Parameters.h"
-#include "WallclockTimer.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Fit/Tools/WallclockTimer.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <memory>
 #include <vector>
diff --git a/Fit/Kernel/Minimizer.cpp b/Fit/Kernel/Minimizer.cpp
index 4cfd7803083310bde9c9a607173651daa5713d07..331d5929b2fc53d892d7b39e8840f9b8a71fd489 100644
--- a/Fit/Kernel/Minimizer.cpp
+++ b/Fit/Kernel/Minimizer.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Minimizer.h"
-#include "Kernel.h"
-#include "PyCallback.h"
+#include "Fit/Kernel/Minimizer.h"
+#include "Fit/Kernel/Kernel.h"
+#include "Fit/Kernel/PyCallback.h"
 
 using namespace Fit;
 
diff --git a/Fit/Kernel/Minimizer.h b/Fit/Kernel/Minimizer.h
index c5f4fb8d85155aab26ecf897bb2450e4af449f00..a1641c5ece5628b5e33d35a88ef36701b007236c 100644
--- a/Fit/Kernel/Minimizer.h
+++ b/Fit/Kernel/Minimizer.h
@@ -15,10 +15,10 @@
 #ifndef MINIMIZER_H
 #define MINIMIZER_H
 
-#include "KernelTypes.h"
-#include "MinimizerResult.h"
-#include "Parameters.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <memory>
 #include <string>
diff --git a/Fit/Kernel/MinimizerResult.cpp b/Fit/Kernel/MinimizerResult.cpp
index 9734ea26f517c5c2cd2757969514d40a67770f28..2e0c09314caf0d618948ec1000e4452617ea30d3 100644
--- a/Fit/Kernel/MinimizerResult.cpp
+++ b/Fit/Kernel/MinimizerResult.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerResult.h"
-#include "MinimizerResultUtils.h"
-#include "MinimizerUtils.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Fit/RootAdapter/MinimizerResultUtils.h"
+#include "Fit/Tools/MinimizerUtils.h"
 #include <sstream>
 
 using namespace Fit;
diff --git a/Fit/Kernel/MinimizerResult.h b/Fit/Kernel/MinimizerResult.h
index c21f3a1a084d3b67d85130ad4a47150546fc87e1..eba0779d7eaca22efe3a904dc570f16cb6f23d09 100644
--- a/Fit/Kernel/MinimizerResult.h
+++ b/Fit/Kernel/MinimizerResult.h
@@ -15,8 +15,8 @@
 #ifndef MINIMIZERRESULT_H
 #define MINIMIZERRESULT_H
 
-#include "Parameters.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 namespace Fit
diff --git a/Fit/Kernel/Parameter.cpp b/Fit/Kernel/Parameter.cpp
index 21ce290220a91a440db41203eee9e151778825d9..2581b9d76dcc58f30ae1a252b2af7442d7b3d8e8 100644
--- a/Fit/Kernel/Parameter.cpp
+++ b/Fit/Kernel/Parameter.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Parameter.h"
+#include "Fit/Kernel/Parameter.h"
 #include <cmath>
 
 namespace
diff --git a/Fit/Kernel/Parameter.h b/Fit/Kernel/Parameter.h
index b85f76502899dd79e75d3d7fd82c869e44f1d719..1c58d47aca0727977f701720d339d39d79bf7aee 100644
--- a/Fit/Kernel/Parameter.h
+++ b/Fit/Kernel/Parameter.h
@@ -15,8 +15,8 @@
 #ifndef PARAMETER_H
 #define PARAMETER_H
 
-#include "AttLimits.h"
-#include "WinDllMacros.h"
+#include "Fit/Tools/AttLimits.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 namespace Fit
diff --git a/Fit/Kernel/Parameters.cpp b/Fit/Kernel/Parameters.cpp
index 3af36939b3eafaf8635a13f6ee977b9bfda09e68..07175dc470632ab6a5bd147d0b92c7e29f824304 100644
--- a/Fit/Kernel/Parameters.cpp
+++ b/Fit/Kernel/Parameters.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Parameters.h"
+#include "Fit/Kernel/Parameters.h"
 #include <cmath>
 #include <sstream>
 #include <stdexcept>
diff --git a/Fit/Kernel/Parameters.h b/Fit/Kernel/Parameters.h
index 73f1e7f700fc91e26e02b2350e195b9e8c0050c6..31988e88f567d162a60310bf97839c0ee4d68c3c 100644
--- a/Fit/Kernel/Parameters.h
+++ b/Fit/Kernel/Parameters.h
@@ -15,8 +15,8 @@
 #ifndef PARAMETERS_H
 #define PARAMETERS_H
 
-#include "Parameter.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/Parameter.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 namespace Fit
diff --git a/Fit/Kernel/PyCallback.cpp b/Fit/Kernel/PyCallback.cpp
index bb511ac5b640a510eba9ab6cee42924d499ba4da..de2421aacf3ac6bdb476fde8cc70cba85420292c 100644
--- a/Fit/Kernel/PyCallback.cpp
+++ b/Fit/Kernel/PyCallback.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "PyCallback.h"
+#include "Fit/Kernel/PyCallback.h"
 
 PyCallback::PyCallback(PyCallback::CallbackType callback_type) : m_callback_type(callback_type) {}
 
diff --git a/Fit/Kernel/PyCallback.h b/Fit/Kernel/PyCallback.h
index b9af2eaaf36e76dde932709f7ce3060ee6bb5372..6a950cf730b6b9a0c55626b82b2762639a9889ca 100644
--- a/Fit/Kernel/PyCallback.h
+++ b/Fit/Kernel/PyCallback.h
@@ -15,8 +15,8 @@
 #ifndef PYCALLBACK_H
 #define PYCALLBACK_H
 
-#include "Parameters.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 //! Base class to wrap Python callable and pass it to C++. Used in swig interface file,
diff --git a/Fit/Minimizer/IMinimizer.cpp b/Fit/Minimizer/IMinimizer.cpp
index 0e67fe6b4fbecdff207cf7eac679d078962ae75f..a57c005b7c0db5fec3acbaee0c122c827d08eee0 100644
--- a/Fit/Minimizer/IMinimizer.cpp
+++ b/Fit/Minimizer/IMinimizer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IMinimizer.h"
+#include "Fit/Minimizer/IMinimizer.h"
 
 IMinimizer::IMinimizer() = default;
 
diff --git a/Fit/Minimizer/IMinimizer.h b/Fit/Minimizer/IMinimizer.h
index 6f3af83806c7b3651f73ede12a0f5cae5a908caa..aae690a24b8ad743d06fdef75d6d1676fb2eb312 100644
--- a/Fit/Minimizer/IMinimizer.h
+++ b/Fit/Minimizer/IMinimizer.h
@@ -15,9 +15,9 @@
 #ifndef IMINIMIZER_H
 #define IMINIMIZER_H
 
-#include "KernelTypes.h"
-#include "MinimizerResult.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 namespace Fit
diff --git a/Fit/Minimizer/MinimizerCatalogue.cpp b/Fit/Minimizer/MinimizerCatalogue.cpp
index 466cccd57094e63eea7bc241d493d0a5980d4452..52094641aac2cc47daa331655d28ea9715d9b68d 100644
--- a/Fit/Minimizer/MinimizerCatalogue.cpp
+++ b/Fit/Minimizer/MinimizerCatalogue.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerCatalogue.h"
-#include "MinimizerUtils.h"
+#include "Fit/Minimizer/MinimizerCatalogue.h"
+#include "Fit/Tools/MinimizerUtils.h"
 #include <boost/format.hpp>
 #include <sstream>
 
diff --git a/Fit/Minimizer/MinimizerCatalogue.h b/Fit/Minimizer/MinimizerCatalogue.h
index 23de4a00a34796e8aa8df3053c47806971f0d803..553f53e03323a604b70fc33cfe89da5d5f8c13aa 100644
--- a/Fit/Minimizer/MinimizerCatalogue.h
+++ b/Fit/Minimizer/MinimizerCatalogue.h
@@ -15,8 +15,8 @@
 #ifndef MINIMIZERCATALOGUE_H
 #define MINIMIZERCATALOGUE_H
 
-#include "MinimizerInfo.h"
-#include "WinDllMacros.h"
+#include "Fit/Minimizer/MinimizerInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <map>
 
 //! Hard-coded information about all minimizers available.
diff --git a/Fit/Minimizer/MinimizerFactory.cpp b/Fit/Minimizer/MinimizerFactory.cpp
index e59faf7aba14acbfce11e31942d2f2682f140cf0..16a0d2a5767f62be77e98f3c0898cf4130f6af09 100644
--- a/Fit/Minimizer/MinimizerFactory.cpp
+++ b/Fit/Minimizer/MinimizerFactory.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerFactory.h"
-#include "GSLLevenbergMarquardtMinimizer.h"
-#include "GSLMultiMinimizer.h"
-#include "GeneticMinimizer.h"
-#include "MinimizerCatalogue.h"
-#include "Minuit2Minimizer.h"
-#include "SimAnMinimizer.h"
-#include "TestMinimizer.h"
+#include "Fit/Minimizer/MinimizerFactory.h"
+#include "Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h"
+#include "Fit/RootAdapter/GSLMultiMinimizer.h"
+#include "Fit/RootAdapter/GeneticMinimizer.h"
+#include "Fit/Minimizer/MinimizerCatalogue.h"
+#include "Fit/RootAdapter/Minuit2Minimizer.h"
+#include "Fit/RootAdapter/SimAnMinimizer.h"
+#include "Fit/Minimizer/TestMinimizer.h"
 #include <boost/format.hpp>
 #include <iomanip>
 #include <iostream>
diff --git a/Fit/Minimizer/MinimizerFactory.h b/Fit/Minimizer/MinimizerFactory.h
index d8da207ec97da49671a6d98c21c2fc0c2a6c5f1a..1902f5b5da22e9ccb7ccd14a8e08e4bdc7465f8c 100644
--- a/Fit/Minimizer/MinimizerFactory.h
+++ b/Fit/Minimizer/MinimizerFactory.h
@@ -15,8 +15,8 @@
 #ifndef MINIMIZERFACTORY_H
 #define MINIMIZERFACTORY_H
 
-#include "MinimizerCatalogue.h"
-#include "WinDllMacros.h"
+#include "Fit/Minimizer/MinimizerCatalogue.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 class IMinimizer;
diff --git a/Fit/Minimizer/MinimizerInfo.cpp b/Fit/Minimizer/MinimizerInfo.cpp
index 33d1ca726cc7e6d9bdf74333b6e3dac5e24e4d7d..78e55acaeea1251f33c0d1d71b607cb186432655 100644
--- a/Fit/Minimizer/MinimizerInfo.cpp
+++ b/Fit/Minimizer/MinimizerInfo.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerInfo.h"
-#include "MinimizerConstants.h"
+#include "Fit/Minimizer/MinimizerInfo.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
 #include <sstream>
 #include <stdexcept>
 
diff --git a/Fit/Minimizer/MinimizerInfo.h b/Fit/Minimizer/MinimizerInfo.h
index a9f3cff1086974a804adbe64a6a4cca3b558ee28..8d1719a5fb03d38092fa6a1a033fca869ba79f7e 100644
--- a/Fit/Minimizer/MinimizerInfo.h
+++ b/Fit/Minimizer/MinimizerInfo.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERINFO_H
 #define MINIMIZERINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 #include <vector>
 
diff --git a/Fit/Minimizer/MinimizerOptions.cpp b/Fit/Minimizer/MinimizerOptions.cpp
index cce2bfd6852522f06df4c4e52bf8df1c060f736e..96eb223f73733fd48a6a42be04667949045f1e09 100644
--- a/Fit/Minimizer/MinimizerOptions.cpp
+++ b/Fit/Minimizer/MinimizerOptions.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerOptions.h"
-#include "StringUtils.h"
+#include "Fit/Minimizer/MinimizerOptions.h"
+#include "Fit/Tools/StringUtils.h"
 #include <iostream>
 #include <sstream>
 #include <stdexcept>
diff --git a/Fit/Minimizer/MinimizerOptions.h b/Fit/Minimizer/MinimizerOptions.h
index eeada0fa2abb83d2e267b3d5b2dbf0729790f12b..b5cb73f414a10d7a31321d36b3df02b56712f744 100644
--- a/Fit/Minimizer/MinimizerOptions.h
+++ b/Fit/Minimizer/MinimizerOptions.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZEROPTIONS_H
 #define MINIMIZEROPTIONS_H
 
-#include "OptionContainer.h"
+#include "Fit/Tools/OptionContainer.h"
 
 //! Collection of internal minimizer settings.
 //! @ingroup fitting_internal
diff --git a/Fit/Minimizer/TestMinimizer.cpp b/Fit/Minimizer/TestMinimizer.cpp
index 5b26d7c93fc0c4ac107ce9a49a3956727e73fb74..43b629268a42d67f31510b5f438610763acd1e97 100644
--- a/Fit/Minimizer/TestMinimizer.cpp
+++ b/Fit/Minimizer/TestMinimizer.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "TestMinimizer.h"
-#include "MinimizerConstants.h"
-#include "Parameters.h"
+#include "Fit/Minimizer/TestMinimizer.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
+#include "Fit/Kernel/Parameters.h"
 #include <sstream>
 
 using namespace Fit;
diff --git a/Fit/Minimizer/TestMinimizer.h b/Fit/Minimizer/TestMinimizer.h
index 3835610511c4a32f79d8ef22a7fd8398800275fe..ec7c450800e5fbad6ced4ce509ab5169739c2c92 100644
--- a/Fit/Minimizer/TestMinimizer.h
+++ b/Fit/Minimizer/TestMinimizer.h
@@ -15,7 +15,7 @@
 #ifndef TESTMINIMIZER_H
 #define TESTMINIMIZER_H
 
-#include "IMinimizer.h"
+#include "Fit/Minimizer/IMinimizer.h"
 
 //! A trivial minimizer that calls the objective function once. Used to test the whole chain.
 
diff --git a/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.cpp b/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.cpp
index cd47bd3f498559f47c41bacc59e7cfa38657cd85..ba831932e253a9c5a9df1a841472e2b7a6117dc4 100644
--- a/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.cpp
+++ b/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "GSLLevenbergMarquardtMinimizer.h"
-#include "AttLimits.h"
-#include "GSLMultiMinimizer.h"
-#include "MinimizerUtils.h"
-#include "StringUtils.h"
+#include "Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h"
+#include "Fit/Tools/AttLimits.h"
+#include "Fit/RootAdapter/GSLMultiMinimizer.h"
+#include "Fit/Tools/MinimizerUtils.h"
+#include "Fit/Tools/StringUtils.h"
 #include <stdexcept>
 
 #ifdef _WIN32
diff --git a/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h b/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h
index b7d496cd4b81e68dc370cfca0f92d567df953a74..56b96839a250e3ca744d25c8bd8e11a8e3b4ed21 100644
--- a/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h
+++ b/Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h
@@ -15,7 +15,7 @@
 #ifndef GSLLEVENBERGMARQUARDTMINIMIZER_H
 #define GSLLEVENBERGMARQUARDTMINIMIZER_H
 
-#include "RootMinimizerAdapter.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 
 namespace ROOT
 {
diff --git a/Fit/RootAdapter/GSLMultiMinimizer.cpp b/Fit/RootAdapter/GSLMultiMinimizer.cpp
index 59c923bb5c8c2895d5d2ce47bd9f2270d2244f5e..061a2a35574aa6f075481b592a3b38266fe853e4 100644
--- a/Fit/RootAdapter/GSLMultiMinimizer.cpp
+++ b/Fit/RootAdapter/GSLMultiMinimizer.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "GSLMultiMinimizer.h"
-#include "MinimizerUtils.h"
+#include "Fit/RootAdapter/GSLMultiMinimizer.h"
+#include "Fit/Tools/MinimizerUtils.h"
 #include <string>
 
 #ifdef _WIN32
diff --git a/Fit/RootAdapter/GSLMultiMinimizer.h b/Fit/RootAdapter/GSLMultiMinimizer.h
index a49b2d66b2509b1e8d956c7154dd29fc1fd8fb1f..e6f1775f416ab7cb9cbc7b7557fa61bcebc54e06 100644
--- a/Fit/RootAdapter/GSLMultiMinimizer.h
+++ b/Fit/RootAdapter/GSLMultiMinimizer.h
@@ -15,8 +15,8 @@
 #ifndef GSLMULTIMINIMIZER_H
 #define GSLMULTIMINIMIZER_H
 
-#include "MinimizerConstants.h"
-#include "RootMinimizerAdapter.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 
 namespace ROOT
 {
diff --git a/Fit/RootAdapter/GeneticMinimizer.cpp b/Fit/RootAdapter/GeneticMinimizer.cpp
index 95a7961b70240a5a637f7f7dda5f2ad174769273..e668de197ed331c69df386ca093b14d2bbaf1cdf 100644
--- a/Fit/RootAdapter/GeneticMinimizer.cpp
+++ b/Fit/RootAdapter/GeneticMinimizer.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "GeneticMinimizer.h"
+#include "Fit/RootAdapter/GeneticMinimizer.h"
 #include "Math/GeneticMinimizer.h"
-#include "MinimizerConstants.h"
-#include "Parameter.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
+#include "Fit/Kernel/Parameter.h"
 
 namespace
 {
diff --git a/Fit/RootAdapter/GeneticMinimizer.h b/Fit/RootAdapter/GeneticMinimizer.h
index 4fd1790816fa2e0b637a8e2f3c39cec89f479a01..991d1a01fc5cc34e07c77e80ccad0c1c62819b23 100644
--- a/Fit/RootAdapter/GeneticMinimizer.h
+++ b/Fit/RootAdapter/GeneticMinimizer.h
@@ -15,7 +15,7 @@
 #ifndef GENETICMINIMIZER_H
 #define GENETICMINIMIZER_H
 
-#include "RootMinimizerAdapter.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 
 namespace ROOT
 {
diff --git a/Fit/RootAdapter/MinimizerResultUtils.cpp b/Fit/RootAdapter/MinimizerResultUtils.cpp
index 0eddb7700394ddb205e2a3598f132a0d344155b8..b4f71ce0b889e0610b02d09befdec518197fb2fa 100644
--- a/Fit/RootAdapter/MinimizerResultUtils.cpp
+++ b/Fit/RootAdapter/MinimizerResultUtils.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerResultUtils.h"
-#include "MinimizerUtils.h"
-#include "Parameters.h"
-#include "RootMinimizerAdapter.h"
+#include "Fit/RootAdapter/MinimizerResultUtils.h"
+#include "Fit/Tools/MinimizerUtils.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 #include <boost/format.hpp>
 #include <iomanip>
 #include <sstream>
diff --git a/Fit/RootAdapter/MinimizerResultUtils.h b/Fit/RootAdapter/MinimizerResultUtils.h
index a7e8c2111f57538363cebf63b7f73500a515ed22..5c3fcb0f44d51af2664bef396845938e4a562151 100644
--- a/Fit/RootAdapter/MinimizerResultUtils.h
+++ b/Fit/RootAdapter/MinimizerResultUtils.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERRESULTSHELPER_H
 #define MINIMIZERRESULTSHELPER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 class RootMinimizerAdapter;
diff --git a/Fit/RootAdapter/Minuit2Minimizer.cpp b/Fit/RootAdapter/Minuit2Minimizer.cpp
index 1885f4e2993fd6d06480595797ca8768608fd3dd..71fcefdde98c6a370eb4d7f581c4d7105515c838 100644
--- a/Fit/RootAdapter/Minuit2Minimizer.cpp
+++ b/Fit/RootAdapter/Minuit2Minimizer.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Minuit2Minimizer.h"
+#include "Fit/RootAdapter/Minuit2Minimizer.h"
 #include "Minuit2/Minuit2Minimizer.h"
-#include "StringUtils.h"
+#include "Fit/Tools/StringUtils.h"
 
 namespace
 {
diff --git a/Fit/RootAdapter/Minuit2Minimizer.h b/Fit/RootAdapter/Minuit2Minimizer.h
index 03e8c31d60dfa9ee36bc0535e9e601932c5f7bb6..d1c74e3bdde94c40d5d1b273a288cce790286fe1 100644
--- a/Fit/RootAdapter/Minuit2Minimizer.h
+++ b/Fit/RootAdapter/Minuit2Minimizer.h
@@ -15,8 +15,8 @@
 #ifndef MINUIT2MINIMIZER_H
 #define MINUIT2MINIMIZER_H
 
-#include "MinimizerConstants.h"
-#include "RootMinimizerAdapter.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 #include <memory>
 
 namespace ROOT
diff --git a/Fit/RootAdapter/ObjectiveFunctionAdapter.cpp b/Fit/RootAdapter/ObjectiveFunctionAdapter.cpp
index 2024ca8baef044a1a7b497828027c5f1fe6bee4e..de6f8f5859eece30310edf1dc0f80be3e15a07c5 100644
--- a/Fit/RootAdapter/ObjectiveFunctionAdapter.cpp
+++ b/Fit/RootAdapter/ObjectiveFunctionAdapter.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ObjectiveFunctionAdapter.h"
-#include "ResidualFunctionAdapter.h"
-#include "RootResidualFunction.h"
-#include "RootScalarFunction.h"
-#include "ScalarFunctionAdapter.h"
+#include "Fit/RootAdapter/ObjectiveFunctionAdapter.h"
+#include "Fit/RootAdapter/ResidualFunctionAdapter.h"
+#include "Fit/RootAdapter/RootResidualFunction.h"
+#include "Fit/RootAdapter/RootScalarFunction.h"
+#include "Fit/RootAdapter/ScalarFunctionAdapter.h"
 
 using namespace Fit;
 
diff --git a/Fit/RootAdapter/ObjectiveFunctionAdapter.h b/Fit/RootAdapter/ObjectiveFunctionAdapter.h
index 9c189815f694ce75fc3578e6601de751d31e49b0..d8e46bac8e23b98ffec2b370749ea1751b7fec44 100644
--- a/Fit/RootAdapter/ObjectiveFunctionAdapter.h
+++ b/Fit/RootAdapter/ObjectiveFunctionAdapter.h
@@ -15,8 +15,8 @@
 #ifndef OBJECTIVEFUNCTIONADAPTER_H
 #define OBJECTIVEFUNCTIONADAPTER_H
 
-#include "KernelTypes.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 
 class RootScalarFunction;
diff --git a/Fit/RootAdapter/ResidualFunctionAdapter.cpp b/Fit/RootAdapter/ResidualFunctionAdapter.cpp
index 213f4e19c5b3ce7261a5104faedca40f603b3c11..a20266b132f8d15b24f2e5cbef4aa2c4b23e7288 100644
--- a/Fit/RootAdapter/ResidualFunctionAdapter.cpp
+++ b/Fit/RootAdapter/ResidualFunctionAdapter.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ResidualFunctionAdapter.h"
-#include "RootResidualFunction.h"
+#include "Fit/RootAdapter/ResidualFunctionAdapter.h"
+#include "Fit/RootAdapter/RootResidualFunction.h"
 #include <cassert>
 #include <sstream>
 
diff --git a/Fit/RootAdapter/ResidualFunctionAdapter.h b/Fit/RootAdapter/ResidualFunctionAdapter.h
index 46a9729c3fdec15edd238cdac54f49ff820fb835..62c87ba688d0a93022ee55301374dbafc55d8058 100644
--- a/Fit/RootAdapter/ResidualFunctionAdapter.h
+++ b/Fit/RootAdapter/ResidualFunctionAdapter.h
@@ -15,9 +15,9 @@
 #ifndef RESIDUALFUNCTIONADAPTER_H
 #define RESIDUALFUNCTIONADAPTER_H
 
-#include "IFunctionAdapter.h"
-#include "KernelTypes.h"
-#include "Parameters.h"
+#include "Fit/Kernel/IFunctionAdapter.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/Parameters.h"
 #include <functional>
 #include <memory>
 #include <vector>
diff --git a/Fit/RootAdapter/RootMinimizerAdapter.cpp b/Fit/RootAdapter/RootMinimizerAdapter.cpp
index 117f2654b4347886c10f6c9a329651c444fa5963..7b5497584e496894afbcf6a93f4463cd8329b07f 100644
--- a/Fit/RootAdapter/RootMinimizerAdapter.cpp
+++ b/Fit/RootAdapter/RootMinimizerAdapter.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "RootMinimizerAdapter.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 #include "Math/Minimizer.h"
-#include "MinimizerResultUtils.h"
-#include "ObjectiveFunctionAdapter.h"
-#include "Parameter.h"
-#include "Parameters.h"
-#include "RootResidualFunction.h"
-#include "RootScalarFunction.h"
-#include "StringUtils.h"
+#include "Fit/RootAdapter/MinimizerResultUtils.h"
+#include "Fit/RootAdapter/ObjectiveFunctionAdapter.h"
+#include "Fit/Kernel/Parameter.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Fit/RootAdapter/RootResidualFunction.h"
+#include "Fit/RootAdapter/RootScalarFunction.h"
+#include "Fit/Tools/StringUtils.h"
 
 using namespace Fit;
 
diff --git a/Fit/RootAdapter/RootMinimizerAdapter.h b/Fit/RootAdapter/RootMinimizerAdapter.h
index bc76e24bee10bc12189bd003d6edeb9a8d45f52e..931de5b1551463b04ebd30a2c3230d88745e6ac0 100644
--- a/Fit/RootAdapter/RootMinimizerAdapter.h
+++ b/Fit/RootAdapter/RootMinimizerAdapter.h
@@ -15,9 +15,9 @@
 #ifndef ROOTMINIMIZERADAPTER_H
 #define ROOTMINIMIZERADAPTER_H
 
-#include "IMinimizer.h"
-#include "MinimizerInfo.h"
-#include "MinimizerOptions.h"
+#include "Fit/Minimizer/IMinimizer.h"
+#include "Fit/Minimizer/MinimizerInfo.h"
+#include "Fit/Minimizer/MinimizerOptions.h"
 #include <memory>
 #include <string>
 
diff --git a/Fit/RootAdapter/RootResidualFunction.cpp b/Fit/RootAdapter/RootResidualFunction.cpp
index f3fcd67fd553c3b853b486df945e124653bb01d5..2f2749af167346d88bccc5eb1b2460ec4c0b2035 100644
--- a/Fit/RootAdapter/RootResidualFunction.cpp
+++ b/Fit/RootAdapter/RootResidualFunction.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RootResidualFunction.h"
+#include "Fit/RootAdapter/RootResidualFunction.h"
 
 RootResidualFunction::RootResidualFunction(scalar_function_t objective_fun,
                                            gradient_function_t gradient_fun, size_t npars,
diff --git a/Fit/RootAdapter/RootResidualFunction.h b/Fit/RootAdapter/RootResidualFunction.h
index 14162f92316c5139c4358b9ae5b1cdb7dafdc8e7..eabb7fee5456d3c20aaf44a4e55181e9954b5500 100644
--- a/Fit/RootAdapter/RootResidualFunction.h
+++ b/Fit/RootAdapter/RootResidualFunction.h
@@ -15,7 +15,7 @@
 #ifndef ROOTRESIDUALFUNCTION_H
 #define ROOTRESIDUALFUNCTION_H
 
-#include "KernelTypes.h"
+#include "Fit/Kernel/KernelTypes.h"
 
 #ifdef _WIN32
 #include "Math/FitMethodFunction.h"
diff --git a/Fit/RootAdapter/RootScalarFunction.cpp b/Fit/RootAdapter/RootScalarFunction.cpp
index ad2eeb249e81d43122ee525d870453032bf2ef57..4b77c77a2d4d3be373d8edbd2b3b7c5feda89733 100644
--- a/Fit/RootAdapter/RootScalarFunction.cpp
+++ b/Fit/RootAdapter/RootScalarFunction.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RootScalarFunction.h"
+#include "Fit/RootAdapter/RootScalarFunction.h"
 
 RootScalarFunction::RootScalarFunction(root_scalar_t fcn, int ndims)
     : ROOT::Math::Functor(fcn, static_cast<unsigned int>(ndims))
diff --git a/Fit/RootAdapter/RootScalarFunction.h b/Fit/RootAdapter/RootScalarFunction.h
index 170c0624fdbe9db161c0b68bde1275afbbb6f421..a3a4104cda49f8c94a05f0a322e8021446235a44 100644
--- a/Fit/RootAdapter/RootScalarFunction.h
+++ b/Fit/RootAdapter/RootScalarFunction.h
@@ -15,7 +15,7 @@
 #ifndef ROOTSCALARFUNCTION_H
 #define ROOTSCALARFUNCTION_H
 
-#include "KernelTypes.h"
+#include "Fit/Kernel/KernelTypes.h"
 
 #ifdef _WIN32
 #include "Math/Functor.h"
diff --git a/Fit/RootAdapter/ScalarFunctionAdapter.cpp b/Fit/RootAdapter/ScalarFunctionAdapter.cpp
index 68b1b315c0f0f74f17ac315f4e2fdfb31b148280..098567fb3602226eefdcd9ff56aa7106df75bed5 100644
--- a/Fit/RootAdapter/ScalarFunctionAdapter.cpp
+++ b/Fit/RootAdapter/ScalarFunctionAdapter.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ScalarFunctionAdapter.h"
-#include "KernelTypes.h"
-#include "RootScalarFunction.h"
+#include "Fit/RootAdapter/ScalarFunctionAdapter.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/RootAdapter/RootScalarFunction.h"
 
 using namespace Fit;
 
diff --git a/Fit/RootAdapter/ScalarFunctionAdapter.h b/Fit/RootAdapter/ScalarFunctionAdapter.h
index 716b42dfa179419ed37c8207dc2771374e2c2bf1..58539c17ea85d85aa3d015ea6fc953b7bdab4ad6 100644
--- a/Fit/RootAdapter/ScalarFunctionAdapter.h
+++ b/Fit/RootAdapter/ScalarFunctionAdapter.h
@@ -15,9 +15,9 @@
 #ifndef SCALARFUNCTIONADAPTER_H
 #define SCALARFUNCTIONADAPTER_H
 
-#include "IFunctionAdapter.h"
-#include "KernelTypes.h"
-#include "Parameters.h"
+#include "Fit/Kernel/IFunctionAdapter.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/Parameters.h"
 #include <functional>
 #include <memory>
 #include <vector>
diff --git a/Fit/RootAdapter/SimAnMinimizer.cpp b/Fit/RootAdapter/SimAnMinimizer.cpp
index 410c16a971dd647fa47bf39f537cb27277a300a4..408527b5449239e5dba16d7f408938aa49ae8d6e 100644
--- a/Fit/RootAdapter/SimAnMinimizer.cpp
+++ b/Fit/RootAdapter/SimAnMinimizer.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SimAnMinimizer.h"
-#include "GSLMultiMinimizer.h"
-#include "MinimizerConstants.h"
+#include "Fit/RootAdapter/SimAnMinimizer.h"
+#include "Fit/RootAdapter/GSLMultiMinimizer.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
 
 #ifdef _WIN32
 #pragma warning(push)
diff --git a/Fit/RootAdapter/SimAnMinimizer.h b/Fit/RootAdapter/SimAnMinimizer.h
index 3a722d143a08d3aaed0e984dbd0e649019a53f8a..f873d8943c928103a38cf44acc1260a367c8634e 100644
--- a/Fit/RootAdapter/SimAnMinimizer.h
+++ b/Fit/RootAdapter/SimAnMinimizer.h
@@ -15,7 +15,7 @@
 #ifndef SIMANMINIMIZER_H
 #define SIMANMINIMIZER_H
 
-#include "RootMinimizerAdapter.h"
+#include "Fit/RootAdapter/RootMinimizerAdapter.h"
 
 namespace ROOT
 {
diff --git a/Fit/Tools/AttLimits.cpp b/Fit/Tools/AttLimits.cpp
index c2abe4ebbc33d65f22bb6c2848150853adb3339f..82c32bbcbf3569ca5c078475d0d2308f0f76eae5 100644
--- a/Fit/Tools/AttLimits.cpp
+++ b/Fit/Tools/AttLimits.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "AttLimits.h"
+#include "Fit/Tools/AttLimits.h"
 #include <iomanip>
 #include <sstream>
 
diff --git a/Fit/Tools/AttLimits.h b/Fit/Tools/AttLimits.h
index 9dc4cd04a0fbd025255830ec05514f5b061da0e4..b3bd4a7d34b1d7be7b17aef26f6e48fab8bce98c 100644
--- a/Fit/Tools/AttLimits.h
+++ b/Fit/Tools/AttLimits.h
@@ -15,9 +15,9 @@
 #ifndef ATTLIMITS_H
 #define ATTLIMITS_H
 
-#include "Attributes.h"
-#include "RealLimits.h"
-#include "WinDllMacros.h"
+#include "Fit/Tools/Attributes.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 
 //! Attributes and limits of a fit parameter, and coupling between these properties.
diff --git a/Fit/Tools/Attributes.h b/Fit/Tools/Attributes.h
index ba169ea6195732b763e6997b76cb94b0582d54e3..6638b23706474eed6ccddc68bea7df15f41b29e8 100644
--- a/Fit/Tools/Attributes.h
+++ b/Fit/Tools/Attributes.h
@@ -15,7 +15,7 @@
 #ifndef ATTRIBUTES_H
 #define ATTRIBUTES_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <ostream>
 
 //! Attributes for a fit parameter. Currently, the only attribute is fixed/free.
diff --git a/Fit/Tools/MinimizerUtils.cpp b/Fit/Tools/MinimizerUtils.cpp
index 05e74b6be2e37fd2327650fc879386c16a815547..b11b84e6c26d8f4904be5d2922c0c726199b29a0 100644
--- a/Fit/Tools/MinimizerUtils.cpp
+++ b/Fit/Tools/MinimizerUtils.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerUtils.h"
+#include "Fit/Tools/MinimizerUtils.h"
 #include <algorithm>
 #include <cmath>
 #include <limits>
diff --git a/Fit/Tools/MinimizerUtils.h b/Fit/Tools/MinimizerUtils.h
index 4ff034f6f68cb63fb364dc3aaba97b2976882216..1c1c8268f403bf218edbeca65215dc7642041519 100644
--- a/Fit/Tools/MinimizerUtils.h
+++ b/Fit/Tools/MinimizerUtils.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERUTILS_H
 #define MINIMIZERUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <map>
 #include <string>
 #include <vector>
diff --git a/Fit/Tools/MultiOption.cpp b/Fit/Tools/MultiOption.cpp
index a53e2e4ba1c853cd1e37e51ca113758a9e7bc592..2c6114a7a17499d4c5bb11cb8b88aa3214d3d6cb 100644
--- a/Fit/Tools/MultiOption.cpp
+++ b/Fit/Tools/MultiOption.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MultiOption.h"
+#include "Fit/Tools/MultiOption.h"
 #include <boost/lexical_cast.hpp>
 
 MultiOption::MultiOption(const std::string& name) : m_name(name) {}
diff --git a/Fit/Tools/MultiOption.h b/Fit/Tools/MultiOption.h
index 6bcc875aab6cef9e397cbbe4abd6b5bbc1202045..e2ea8e4974a13485c1b0635a9245221978b84951 100644
--- a/Fit/Tools/MultiOption.h
+++ b/Fit/Tools/MultiOption.h
@@ -15,7 +15,7 @@
 #ifndef MULTIOPTION_H
 #define MULTIOPTION_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <boost/variant.hpp>
 #include <string>
 
diff --git a/Fit/Tools/OptionContainer.cpp b/Fit/Tools/OptionContainer.cpp
index ac0c2ff188892b0eb805e175f6dd5735858ff800..1d45853cf37f0c333b95a57c147a2baf6854315e 100644
--- a/Fit/Tools/OptionContainer.cpp
+++ b/Fit/Tools/OptionContainer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "OptionContainer.h"
+#include "Fit/Tools/OptionContainer.h"
 #include <sstream>
 
 //! Returns true if option with such name already exists.
diff --git a/Fit/Tools/OptionContainer.h b/Fit/Tools/OptionContainer.h
index a90e2a276f7d52db398e51645bc047958d158593..19ac0fedda73bb3f5f2a4e46fd8df718ad40a671 100644
--- a/Fit/Tools/OptionContainer.h
+++ b/Fit/Tools/OptionContainer.h
@@ -15,8 +15,8 @@
 #ifndef OPTIONCONTAINER_H
 #define OPTIONCONTAINER_H
 
-#include "MultiOption.h"
-#include "WinDllMacros.h"
+#include "Fit/Tools/MultiOption.h"
+#include "Wrap/WinDllMacros.h"
 #include <map>
 #include <memory>
 #include <stdexcept>
diff --git a/Fit/Tools/RealLimits.cpp b/Fit/Tools/RealLimits.cpp
index 57e62d30c8f97cd9bc1d8f225eef34d0e31e1345..f80c9fde984292d6aff76a76800928ecca9c5f11 100644
--- a/Fit/Tools/RealLimits.cpp
+++ b/Fit/Tools/RealLimits.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RealLimits.h"
+#include "Fit/Tools/RealLimits.h"
 #include <iomanip>
 #include <iostream>
 #include <limits>
diff --git a/Fit/Tools/RealLimits.h b/Fit/Tools/RealLimits.h
index f9a2705429715cfda531134f4a1cff7bcb2a7ad1..b7f27185df8e7d861e55a0f3436546c2019b6ff9 100644
--- a/Fit/Tools/RealLimits.h
+++ b/Fit/Tools/RealLimits.h
@@ -15,7 +15,7 @@
 #ifndef REALLIMITS_H
 #define REALLIMITS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <ostream>
 #include <string>
 
diff --git a/Fit/Tools/StringUtils.cpp b/Fit/Tools/StringUtils.cpp
index aff2f3bddd71363f33d9a0af0a9976422433658c..814ee207d2eca330b239cf87256f18edd770b252 100644
--- a/Fit/Tools/StringUtils.cpp
+++ b/Fit/Tools/StringUtils.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "StringUtils.h"
+#include "Fit/Tools/StringUtils.h"
 #include <boost/algorithm/string.hpp>
 #include <regex>
 
diff --git a/Fit/Tools/StringUtils.h b/Fit/Tools/StringUtils.h
index 247e849f8d04a052d72c0479ef3d0daa00f98049..793ada729400a1b3003660fc07d54a6e05ed9d12 100644
--- a/Fit/Tools/StringUtils.h
+++ b/Fit/Tools/StringUtils.h
@@ -15,7 +15,7 @@
 #ifndef STRINGUTILS_H
 #define STRINGUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <iomanip>
 #include <sstream>
 #include <string>
diff --git a/Fit/Tools/WallclockTimer.cpp b/Fit/Tools/WallclockTimer.cpp
index 04194862c5a76d16e53da4ef229f044e423ce81c..a4cb6fafd32b35e110b7a7b7184acfe8f9d975e8 100644
--- a/Fit/Tools/WallclockTimer.cpp
+++ b/Fit/Tools/WallclockTimer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "WallclockTimer.h"
+#include "Fit/Tools/WallclockTimer.h"
 #include <chrono>
 
 using clock_used = std::chrono::high_resolution_clock;
diff --git a/Fit/Tools/WallclockTimer.h b/Fit/Tools/WallclockTimer.h
index d0d90e9869e6b9da971216c51a719beac11d0448..127cc84e7529ccfbd8b58ce79dae2087fd32c1db 100644
--- a/Fit/Tools/WallclockTimer.h
+++ b/Fit/Tools/WallclockTimer.h
@@ -15,7 +15,7 @@
 #ifndef TIMEINTERVAL_H
 #define TIMEINTERVAL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 
 struct WallclockTimerState;
diff --git a/GUI/ba3d/def.cpp b/GUI/ba3d/def.cpp
index a5f9866c74ebd128a0de38b3b6e9893a1f8bb548..ddb3adcc9780e25b8d0eca817f6f90a9205e8547 100644
--- a/GUI/ba3d/def.cpp
+++ b/GUI/ba3d/def.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "def.h"
+#include "GUI/ba3d/def.h"
 
 static_assert(QT_VERSION >= QT_VERSION_CHECK(5, 5, 1),
               "requires Qt >= 5.5.1, have " QT_VERSION_STR);
diff --git a/GUI/ba3d/model/geometry.cpp b/GUI/ba3d/model/geometry.cpp
index 0619e6876a1b9cba7c125ce92466a6807f5c1449..4363a03d7aa40bf653b0a725a8f46d8ade37a30b 100644
--- a/GUI/ba3d/model/geometry.cpp
+++ b/GUI/ba3d/model/geometry.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "geometry.h"
-#include "model.h"
+#include "GUI/ba3d/model/geometry.h"
+#include "GUI/ba3d/model/model.h"
 
 namespace RealSpace
 {
diff --git a/GUI/ba3d/model/geometry.h b/GUI/ba3d/model/geometry.h
index 302e86ae1380f27c6b9f42538ac224da962b939f..b0c0147a9ad8471ef1dbcd46697a4fb9e99d795e 100644
--- a/GUI/ba3d/model/geometry.h
+++ b/GUI/ba3d/model/geometry.h
@@ -16,7 +16,7 @@
 #define BA3D_GEOMETRY_H
 
 #include "../def.h"
-#include "geometry_inc.h"
+#include "GUI/ba3d/model/geometry_inc.h"
 #include <QObject>
 #include <QVector>
 #include <unordered_map>
diff --git a/GUI/ba3d/model/geometry_inc.cpp b/GUI/ba3d/model/geometry_inc.cpp
index 0ecfa185ee63a88a9b47545a352f63b12aa682a5..15ac9a844bdf0c314ccae164b7c8605ef1808f3e 100644
--- a/GUI/ba3d/model/geometry_inc.cpp
+++ b/GUI/ba3d/model/geometry_inc.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "geometry_inc.h"
+#include "GUI/ba3d/model/geometry_inc.h"
 #include <cmath>
 #include <functional>
 
diff --git a/GUI/ba3d/model/layer.cpp b/GUI/ba3d/model/layer.cpp
index c752d5a07f35bea320c081054853e1ae2e6535e1..f146e4f4fef3a379fd7e694008964777fe6fe8f3 100644
--- a/GUI/ba3d/model/layer.cpp
+++ b/GUI/ba3d/model/layer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "layer.h"
+#include "GUI/ba3d/model/layer.h"
 
 namespace RealSpace
 {
diff --git a/GUI/ba3d/model/layer.h b/GUI/ba3d/model/layer.h
index a13b2e05afa451e330a3b9b12736240e098a4ba7..0d43b280826ee29b68dc6aa6cc953b4c8a3ef91c 100644
--- a/GUI/ba3d/model/layer.h
+++ b/GUI/ba3d/model/layer.h
@@ -15,7 +15,7 @@
 #ifndef BA3D_LAYER_H
 #define BA3D_LAYER_H
 
-#include "object.h"
+#include "GUI/ba3d/model/object.h"
 
 namespace RealSpace
 {
diff --git a/GUI/ba3d/model/model.cpp b/GUI/ba3d/model/model.cpp
index 1b77c9cdca3c06b2e70ef3c18766a7e142aa2c16..96c26213a6c4fabf938b9edbfb297c758141197f 100644
--- a/GUI/ba3d/model/model.cpp
+++ b/GUI/ba3d/model/model.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "model.h"
-#include "geometry.h"
+#include "GUI/ba3d/model/model.h"
+#include "GUI/ba3d/model/geometry.h"
 
 namespace RealSpace
 {
diff --git a/GUI/ba3d/model/model.h b/GUI/ba3d/model/model.h
index 8cbbb4e06f004115519769fd2936b9b9d560b566..a77ff5773931cf63325ac1e769a1e5a9310d1b05 100644
--- a/GUI/ba3d/model/model.h
+++ b/GUI/ba3d/model/model.h
@@ -15,8 +15,8 @@
 #ifndef BA3D_MODEL_H
 #define BA3D_MODEL_H
 
-#include "object.h"
-#include "particles.h"
+#include "GUI/ba3d/model/object.h"
+#include "GUI/ba3d/model/particles.h"
 #include <QVector>
 #include "GUI/ba3d/view/camera.h"
 
diff --git a/GUI/ba3d/model/object.cpp b/GUI/ba3d/model/object.cpp
index f0807d0d66f123aa8f1dceca20f19b8cafb39f84..2a5b9502430567062dd61ee5814d4a61c631f6ad 100644
--- a/GUI/ba3d/model/object.cpp
+++ b/GUI/ba3d/model/object.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "object.h"
+#include "GUI/ba3d/model/object.h"
 #include "../view/canvas.h"
-#include "geometry.h"
-#include "model.h"
+#include "GUI/ba3d/model/geometry.h"
+#include "GUI/ba3d/model/model.h"
 #include <cmath>
 
 namespace
diff --git a/GUI/ba3d/model/object.h b/GUI/ba3d/model/object.h
index e0354050de10ac8bc9b3ccf194dbcd8fd79c95bd..fa20c9894617dd238bb6cf1471bec1781aff5e8e 100644
--- a/GUI/ba3d/model/object.h
+++ b/GUI/ba3d/model/object.h
@@ -16,7 +16,7 @@
 #define BA3D_OBJECT_H
 
 #include "../def.h"
-#include "geometry_inc.h"
+#include "GUI/ba3d/model/geometry_inc.h"
 #include <QColor>
 #include <QMatrix4x4>
 
diff --git a/GUI/ba3d/model/particles.cpp b/GUI/ba3d/model/particles.cpp
index 5a17364059fb04e7be2802e0ea199794b1834b61..16af6813542c55cf3ca837e0d9360a28c254c330 100644
--- a/GUI/ba3d/model/particles.cpp
+++ b/GUI/ba3d/model/particles.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "particles.h"
+#include "GUI/ba3d/model/particles.h"
 #include <cmath>
 
 namespace RealSpace
diff --git a/GUI/ba3d/model/particles.h b/GUI/ba3d/model/particles.h
index 228573124aa4abab6adf18836b664dccb5b9bcc9..bc7664cfa6186791b297042441daf4a33f615b00 100644
--- a/GUI/ba3d/model/particles.h
+++ b/GUI/ba3d/model/particles.h
@@ -15,7 +15,7 @@
 #ifndef BA3D_PARTICLES_H
 #define BA3D_PARTICLES_H
 
-#include "object.h"
+#include "GUI/ba3d/model/object.h"
 
 namespace RealSpace
 {
diff --git a/GUI/ba3d/view/buffer.cpp b/GUI/ba3d/view/buffer.cpp
index 6c176338c793f859619eff2c947a872483b0ce75..5514fa0253341d0bb371e97128ca3be12c314055 100644
--- a/GUI/ba3d/view/buffer.cpp
+++ b/GUI/ba3d/view/buffer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "buffer.h"
+#include "GUI/ba3d/view/buffer.h"
 #include "../model/geometry.h"
 
 namespace
diff --git a/GUI/ba3d/view/camera.cpp b/GUI/ba3d/view/camera.cpp
index 7f14cf0d1e849803aca89eedc7bf06533c4039b5..db3373aa70c5821d74392774b7537c2f4929d37c 100644
--- a/GUI/ba3d/view/camera.cpp
+++ b/GUI/ba3d/view/camera.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "camera.h"
+#include "GUI/ba3d/view/camera.h"
 
 namespace RealSpace
 {
diff --git a/GUI/ba3d/view/canvas.cpp b/GUI/ba3d/view/canvas.cpp
index af38ec89f86926d340d38282562414784646d8cd..4edbdbfd161fb4bc726edd484cd826f69b2c7753 100644
--- a/GUI/ba3d/view/canvas.cpp
+++ b/GUI/ba3d/view/canvas.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "canvas.h"
+#include "GUI/ba3d/view/canvas.h"
 #include "../model/geometry.h"
 #include "../model/model.h"
-#include "buffer.h"
-#include "camera.h"
-#include "program.h"
+#include "GUI/ba3d/view/buffer.h"
+#include "GUI/ba3d/view/camera.h"
+#include "GUI/ba3d/view/program.h"
 
 #include <QMouseEvent>
 #include <QSysInfo>
diff --git a/GUI/ba3d/view/program.cpp b/GUI/ba3d/view/program.cpp
index c26c307eb159ab4ea6d57b3a19ea45d22136490a..3aaa0395fa0f312ff66ed274234cc9ba9daa47da 100644
--- a/GUI/ba3d/view/program.cpp
+++ b/GUI/ba3d/view/program.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "program.h"
-#include "camera.h"
+#include "GUI/ba3d/view/program.h"
+#include "GUI/ba3d/view/camera.h"
 #include <QMatrix4x4>
 #include <stdexcept>
 
diff --git a/GUI/ba3d/widget.cpp b/GUI/ba3d/widget.cpp
index 63affacb95bacb6f126f0689f036628d9e401587..a5ea61f40e05cee7fcbdc6159d00862cf1a59c94 100644
--- a/GUI/ba3d/widget.cpp
+++ b/GUI/ba3d/widget.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "widget.h"
+#include "GUI/ba3d/widget.h"
 #include "model/model.h"
 #include "view/camera.h"
 #include "view/canvas.h"
diff --git a/GUI/ba3d/widget.h b/GUI/ba3d/widget.h
index 343d61a4691afcdba26b955b179c43b743cb241c..ed96d5500ae284e7d72d61fcf279f6880d09c58f 100644
--- a/GUI/ba3d/widget.h
+++ b/GUI/ba3d/widget.h
@@ -15,7 +15,7 @@
 #ifndef BA3D_WIDGET_H
 #define BA3D_WIDGET_H
 
-#include "def.h"
+#include "GUI/ba3d/def.h"
 #include <QWidget>
 
 namespace RealSpace
diff --git a/GUI/coregui/Models/ApplicationModels.cpp b/GUI/coregui/Models/ApplicationModels.cpp
index b6a7a468bfeb47a340880decd95f3c9c5dc941b0..b3c91478f4dd1a064373d2b08d25df5cdc5c7180 100644
--- a/GUI/coregui/Models/ApplicationModels.cpp
+++ b/GUI/coregui/Models/ApplicationModels.cpp
@@ -12,27 +12,27 @@
 //
 // ************************************************************************** //
 
-#include "ApplicationModels.h"
-#include "DocumentModel.h"
-#include "GUIObjectBuilder.h"
-#include "ISample.h"
-#include "ImportDataUtils.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataIOFactory.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "MaterialModel.h"
-#include "MaterialPropertyController.h"
-#include "MessageService.h"
-#include "MultiLayer.h"
-#include "OffSpecSimulation.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "SampleBuilderFactory.h"
-#include "SampleModel.h"
-#include "StandardSimulations.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "Core/Scattering/ISample.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/MaterialPropertyController.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Core/StandardSamples/StandardSimulations.h"
 #include <QtCore/QXmlStreamWriter>
 
 ApplicationModels::ApplicationModels(QObject* parent)
diff --git a/GUI/coregui/Models/ApplicationModels.h b/GUI/coregui/Models/ApplicationModels.h
index ba118657097f6a5d473d5b2c741c7f6570b4d310..8edd679a38c1b3b5831ec382d13a98ed7a32385c 100644
--- a/GUI/coregui/Models/ApplicationModels.h
+++ b/GUI/coregui/Models/ApplicationModels.h
@@ -15,7 +15,7 @@
 #ifndef APPLICATIONMODELS_H
 #define APPLICATIONMODELS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class SessionModel;
diff --git a/GUI/coregui/Models/AxesItems.cpp b/GUI/coregui/Models/AxesItems.cpp
index 760dd5276a46d35e85d1e8bcaee35762555fd06f..e274d1d578ba60c63c87ac8018676c8a823080db 100644
--- a/GUI/coregui/Models/AxesItems.cpp
+++ b/GUI/coregui/Models/AxesItems.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "AxesItems.h"
-#include "FixedBinAxis.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Binning/FixedBinAxis.h"
 
 const QString BasicAxisItem::P_IS_VISIBLE = "Visibility";
 const QString BasicAxisItem::P_NBINS = "Nbins";
diff --git a/GUI/coregui/Models/AxesItems.h b/GUI/coregui/Models/AxesItems.h
index 4fbe131d222f03124fab25dd74c0676a0f222235..e496eb586919b455d64eeec84401b72b12de007e 100644
--- a/GUI/coregui/Models/AxesItems.h
+++ b/GUI/coregui/Models/AxesItems.h
@@ -15,7 +15,7 @@
 #ifndef AXESITEMS_H
 #define AXESITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <memory>
 
 class IAxis;
diff --git a/GUI/coregui/Models/BackgroundItems.cpp b/GUI/coregui/Models/BackgroundItems.cpp
index fbaf39031f33384f36151815d9784e58e22fa2ec..fb5b30e0a867835c06acdc6403ce1b21f034890e 100644
--- a/GUI/coregui/Models/BackgroundItems.cpp
+++ b/GUI/coregui/Models/BackgroundItems.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "BackgroundItems.h"
-#include "BornAgainNamespace.h"
-#include "ConstantBackground.h"
-#include "PoissonNoiseBackground.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/BackgroundItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Computation/ConstantBackground.h"
+#include "Core/Computation/PoissonNoiseBackground.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 BackgroundItem::BackgroundItem(const QString& model_type) : SessionItem(model_type) {}
 
diff --git a/GUI/coregui/Models/BackgroundItems.h b/GUI/coregui/Models/BackgroundItems.h
index 0da696e35bc3f12c0fd734fae843a1b97f4474c9..8ba7cc2372654d4c2bf569fb6f4d6d0c8c3147d5 100644
--- a/GUI/coregui/Models/BackgroundItems.h
+++ b/GUI/coregui/Models/BackgroundItems.h
@@ -15,7 +15,7 @@
 #ifndef BACKGROUNDITEMS_H
 #define BACKGROUNDITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class IBackground;
 
diff --git a/GUI/coregui/Models/BeamAngleItems.cpp b/GUI/coregui/Models/BeamAngleItems.cpp
index e85bccb1850a5ee1d77498ccc972e1f859aa61cd..ae5ae96e9c7e98d482e72cf9a86737b666cf3103 100644
--- a/GUI/coregui/Models/BeamAngleItems.cpp
+++ b/GUI/coregui/Models/BeamAngleItems.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "BeamAngleItems.h"
-#include "Units.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
+#include "Core/Parametrization/Units.h"
 
 BeamAzimuthalAngleItem::BeamAzimuthalAngleItem()
     : BeamDistributionItem(Constants::BeamAzimuthalAngleType, m_show_mean)
diff --git a/GUI/coregui/Models/BeamAngleItems.h b/GUI/coregui/Models/BeamAngleItems.h
index 2c71c4bf8f339485a4617be3d7deddeeebfe15bd..4b1fc0fe322c92853caf659bb8b0bb72de6bc95d 100644
--- a/GUI/coregui/Models/BeamAngleItems.h
+++ b/GUI/coregui/Models/BeamAngleItems.h
@@ -15,7 +15,7 @@
 #ifndef BEAMANGLEITEMS_H
 #define BEAMANGLEITEMS_H
 
-#include "BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
 
 class BA_CORE_API_ BeamAzimuthalAngleItem : public BeamDistributionItem
 {
diff --git a/GUI/coregui/Models/BeamDistributionItem.cpp b/GUI/coregui/Models/BeamDistributionItem.cpp
index 3f0a87b1225d60e44817f9666985641573a2298c..9b736fc60a69b41983c1e11949f9d75a25d11ac5 100644
--- a/GUI/coregui/Models/BeamDistributionItem.cpp
+++ b/GUI/coregui/Models/BeamDistributionItem.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "BeamDistributionItem.h"
-#include "Distributions.h"
-#include "GroupItem.h"
-#include "ParameterDistribution.h"
-#include "ParameterTranslators.h"
-#include "RealLimitsItems.h"
-#include "Units.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "Core/Parametrization/Distributions.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
+#include "Core/Parametrization/Units.h"
 
 const QString BeamDistributionItem::P_DISTRIBUTION = "Distribution";
 
diff --git a/GUI/coregui/Models/BeamDistributionItem.h b/GUI/coregui/Models/BeamDistributionItem.h
index 6343bbcd6e75d3ec4cee42120b6d2bf7b215cd2e..bee69dec450ae9cb16591d01acf41ce74d40818a 100644
--- a/GUI/coregui/Models/BeamDistributionItem.h
+++ b/GUI/coregui/Models/BeamDistributionItem.h
@@ -15,7 +15,7 @@
 #ifndef BEAMDISTRIBUTIONITEM_H
 #define BEAMDISTRIBUTIONITEM_H
 
-#include "DistributionItems.h"
+#include "GUI/coregui/Models/DistributionItems.h"
 
 class ParameterDistribution;
 
diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp
index 0ae198d626f84e8bc805f7bf2ec949650f622d42..0fe65c738c7ba2da4264fbcdd4e4dcde586a0d1a 100644
--- a/GUI/coregui/Models/BeamItems.cpp
+++ b/GUI/coregui/Models/BeamItems.cpp
@@ -12,22 +12,22 @@
 //
 // ************************************************************************** //
 
-#include "BeamItems.h"
-#include "AxesItems.h"
-#include "Beam.h"
-#include "BeamAngleItems.h"
-#include "BeamDistributionItem.h"
-#include "BeamWavelengthItem.h"
-#include "BornAgainNamespace.h"
-#include "FootprintItems.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "IAxis.h"
-#include "ParameterTranslators.h"
-#include "PointwiseAxisItem.h"
-#include "SessionItemUtils.h"
-#include "SpecularBeamInclinationItem.h"
-#include "Units.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Beam/Beam.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamWavelengthItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/FootprintItems.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "Core/Binning/IAxis.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "Core/Parametrization/Units.h"
 #include <cmath>
 
 using SessionItemUtils::GetVectorItem;
diff --git a/GUI/coregui/Models/BeamItems.h b/GUI/coregui/Models/BeamItems.h
index cc5a3dc77057e73c9b19bb1a16d64029baf5f72c..efbdbf9400d45a96c90686483ab85862a1042c46 100644
--- a/GUI/coregui/Models/BeamItems.h
+++ b/GUI/coregui/Models/BeamItems.h
@@ -15,7 +15,7 @@
 #ifndef BEAMITEM_H
 #define BEAMITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BasicAxisItem;
 class Beam;
diff --git a/GUI/coregui/Models/BeamWavelengthItem.cpp b/GUI/coregui/Models/BeamWavelengthItem.cpp
index a51dee95d520ab7111cd819056319ab298c3b931..0ce6b6f04a919937a6039ecab8417445105e98be 100644
--- a/GUI/coregui/Models/BeamWavelengthItem.cpp
+++ b/GUI/coregui/Models/BeamWavelengthItem.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "BeamWavelengthItem.h"
+#include "GUI/coregui/Models/BeamWavelengthItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/BeamWavelengthItem.h b/GUI/coregui/Models/BeamWavelengthItem.h
index 687225180d96531f718a069ff4689b33355d48f3..8b9e4ed7e6a543dfb2465925efaae6a191d0e478 100644
--- a/GUI/coregui/Models/BeamWavelengthItem.h
+++ b/GUI/coregui/Models/BeamWavelengthItem.h
@@ -15,7 +15,7 @@
 #ifndef BEAMWAVELENGTHITEM_H
 #define BEAMWAVELENGTHITEM_H
 
-#include "BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
 
 class BA_CORE_API_ BeamWavelengthItem : public BeamDistributionItem
 {
diff --git a/GUI/coregui/Models/ComboProperty.cpp b/GUI/coregui/Models/ComboProperty.cpp
index 583dfc9869f2fe700fee52c99add0919b976515c..b3c561ca2e62a54b02f03e716c3d41ef5a0c496b 100644
--- a/GUI/coregui/Models/ComboProperty.cpp
+++ b/GUI/coregui/Models/ComboProperty.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ComboProperty.h b/GUI/coregui/Models/ComboProperty.h
index 28ded10735e0bee0b25d517f2122c4b4f9084642..d6c540ac1c73da1c978b1b4cebd7a4a8c04729f2 100644
--- a/GUI/coregui/Models/ComboProperty.h
+++ b/GUI/coregui/Models/ComboProperty.h
@@ -15,7 +15,7 @@
 #ifndef COMBOPROPERTY_H
 #define COMBOPROPERTY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStringList>
 #include <QVariant>
 #include <QVector>
diff --git a/GUI/coregui/Models/ComponentProxyModel.cpp b/GUI/coregui/Models/ComponentProxyModel.cpp
index cd8b3c2ec698b520a948e9ed18b5cb090106447b..c8948c8869a2de19e1918680f87b2780fd209d3a 100644
--- a/GUI/coregui/Models/ComponentProxyModel.cpp
+++ b/GUI/coregui/Models/ComponentProxyModel.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ComponentProxyModel.h"
-#include "ComponentProxyStrategy.h"
-#include "ModelUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ComponentProxyModel.h"
+#include "GUI/coregui/Models/ComponentProxyStrategy.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QSet>
 #include <functional>
 
diff --git a/GUI/coregui/Models/ComponentProxyModel.h b/GUI/coregui/Models/ComponentProxyModel.h
index afe134dc6272a47afdf0ab2350220bbf62ca25e4..1d5ede75e836ade9ec456ddf3eb11f9e498d52b4 100644
--- a/GUI/coregui/Models/ComponentProxyModel.h
+++ b/GUI/coregui/Models/ComponentProxyModel.h
@@ -15,8 +15,8 @@
 #ifndef COMPONENTPROXYMODEL_H
 #define COMPONENTPROXYMODEL_H
 
-#include "ProxyModelStrategy.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Models/ProxyModelStrategy.h"
+#include "Wrap/WinDllMacros.h"
 #include <QAbstractProxyModel>
 #include <QMap>
 #include <QPersistentModelIndex>
diff --git a/GUI/coregui/Models/ComponentProxyStrategy.cpp b/GUI/coregui/Models/ComponentProxyStrategy.cpp
index fdcbc2dd32ad6b348916b7b2fa591c5e5609e26c..4859a4431c079be5614a91d74fad518eba06efa9 100644
--- a/GUI/coregui/Models/ComponentProxyStrategy.cpp
+++ b/GUI/coregui/Models/ComponentProxyStrategy.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ComponentProxyStrategy.h"
-#include "ComponentProxyModel.h"
-#include "ComponentUtils.h"
-#include "GroupItem.h"
-#include "ModelPath.h"
-#include "SessionItem.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ComponentProxyStrategy.h"
+#include "GUI/coregui/Models/ComponentProxyModel.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentUtils.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 void ComponentProxyStrategy::onDataChanged(SessionModel* source, ComponentProxyModel* proxy)
 {
diff --git a/GUI/coregui/Models/ComponentProxyStrategy.h b/GUI/coregui/Models/ComponentProxyStrategy.h
index 1387f8b6ef83ba7a8cb19a03e6c0289e3eb6e373..c22dfb1c3fc25eeb55f7e296eba5e586e43013a8 100644
--- a/GUI/coregui/Models/ComponentProxyStrategy.h
+++ b/GUI/coregui/Models/ComponentProxyStrategy.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTPROXYSTRATEGY_H
 #define COMPONENTPROXYSTRATEGY_H
 
-#include "ProxyModelStrategy.h"
+#include "GUI/coregui/Models/ProxyModelStrategy.h"
 
 //! Strategy for ComponentProxyModel which hides extra level of GroupProperty.
 
diff --git a/GUI/coregui/Models/Data1DViewItem.cpp b/GUI/coregui/Models/Data1DViewItem.cpp
index 8994704a4fbe7ac42c76eb9fc06b2e73280cbc96..900de3bd064d5317cfc0428837e9276729febfa2 100644
--- a/GUI/coregui/Models/Data1DViewItem.cpp
+++ b/GUI/coregui/Models/Data1DViewItem.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "Data1DViewItem.h"
-#include "AxesItems.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "DataItem.h"
-#include "DataProperties.h"
-#include "DataPropertyContainer.h"
-#include "DataViewUtils.h"
-#include "GUIHelpers.h"
-#include "JobItem.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DataProperties.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "GUI/coregui/Models/DataViewUtils.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/JobItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/Data1DViewItem.h b/GUI/coregui/Models/Data1DViewItem.h
index 78d1c07604bf98e3e2e354575bde83c414162645..9c774c40d9eccf85ebf06c487c2e2fbad762748f 100644
--- a/GUI/coregui/Models/Data1DViewItem.h
+++ b/GUI/coregui/Models/Data1DViewItem.h
@@ -15,7 +15,7 @@
 #ifndef DATAITEM1DVIEW_H
 #define DATAITEM1DVIEW_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class AmplitudeAxisItem;
 class BasicAxisItem;
diff --git a/GUI/coregui/Models/DataItem.cpp b/GUI/coregui/Models/DataItem.cpp
index 661af549e5f078022e74476d1169d757d6eec0fa..0ef14c99f0745fce2d6e37916ec95d77e359e835 100644
--- a/GUI/coregui/Models/DataItem.cpp
+++ b/GUI/coregui/Models/DataItem.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "DataItem.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "ImportDataInfo.h"
-#include "IntensityDataIOFactory.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
 
 const QString DataItem::P_FILE_NAME = "FileName";
 const QString DataItem::P_AXES_UNITS = "Axes Units";
diff --git a/GUI/coregui/Models/DataItem.h b/GUI/coregui/Models/DataItem.h
index ad63c555e5ef48cd801f1b0628bf2241fd33d9cf..6affe8b5003895ce09c5d5b758b9c37d94a2ac6b 100644
--- a/GUI/coregui/Models/DataItem.h
+++ b/GUI/coregui/Models/DataItem.h
@@ -15,9 +15,9 @@
 #ifndef DATAITEM_H
 #define DATAITEM_H
 
-#include "OutputData.h"
-#include "SaveLoadInterface.h"
-#include "SessionItem.h"
+#include "Core/Instrument/OutputData.h"
+#include "GUI/coregui/mainwindow/SaveLoadInterface.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QDateTime>
 #include <mutex>
 
diff --git a/GUI/coregui/Models/DataItemUtils.cpp b/GUI/coregui/Models/DataItemUtils.cpp
index 6030053e40ef20fc69fcfcc0c2e98263f5b52b3c..d53adab71c80b480b38ca5ce5eadb5ac845448f6 100644
--- a/GUI/coregui/Models/DataItemUtils.cpp
+++ b/GUI/coregui/Models/DataItemUtils.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "DataItemUtils.h"
-#include "GUIHelpers.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "RealDataItem.h"
-#include "SpecularDataItem.h"
+#include "GUI/coregui/Models/DataItemUtils.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/DataItemUtils.h b/GUI/coregui/Models/DataItemUtils.h
index 623780f4009e9a81f75438572346928293db4628..eb0b9e749f766fb8872e565dddc3f3e48aa6c8f2 100644
--- a/GUI/coregui/Models/DataItemUtils.h
+++ b/GUI/coregui/Models/DataItemUtils.h
@@ -15,7 +15,7 @@
 #ifndef DATAITEMUTILS_H
 #define DATAITEMUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class IntensityDataItem;
 class SessionItem;
diff --git a/GUI/coregui/Models/DataProperties.cpp b/GUI/coregui/Models/DataProperties.cpp
index 805623b38ad40abe31096c92386135ace9c6a2b6..4c49fa0c18f7eca1f7900ee42f643db057a1336f 100644
--- a/GUI/coregui/Models/DataProperties.cpp
+++ b/GUI/coregui/Models/DataProperties.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "DataProperties.h"
-#include "ComboProperty.h"
-#include "DataItem.h"
-#include "GUIHelpers.h"
-#include "ModelPath.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/DataProperties.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/DataProperties.h b/GUI/coregui/Models/DataProperties.h
index 0434c4316732c8092a502697a7a1dde54b75bc9a..e6d3fd88b61c8d260e3b1379e43b950cbfdd9211 100644
--- a/GUI/coregui/Models/DataProperties.h
+++ b/GUI/coregui/Models/DataProperties.h
@@ -15,7 +15,7 @@
 #ifndef DATAPROPERTIES_H
 #define DATAPROPERTIES_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class DataItem;
 
diff --git a/GUI/coregui/Models/DataPropertyContainer.cpp b/GUI/coregui/Models/DataPropertyContainer.cpp
index ac0ae4a99013f9b4f753c324477a06cda42d3ea4..054c3e3b13369a03f920eb705e6c99e99f473621 100644
--- a/GUI/coregui/Models/DataPropertyContainer.cpp
+++ b/GUI/coregui/Models/DataPropertyContainer.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "DataPropertyContainer.h"
-#include "DataItem.h"
-#include "DataProperties.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DataProperties.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 
 const QString DataPropertyContainer::T_CHILDREN = "data links";
 
diff --git a/GUI/coregui/Models/DataPropertyContainer.h b/GUI/coregui/Models/DataPropertyContainer.h
index 73a1c68ae1afd3334ba02a66f6996d9a557c34bd..307ca51814cf30b356778dd9e7320dbccda7181f 100644
--- a/GUI/coregui/Models/DataPropertyContainer.h
+++ b/GUI/coregui/Models/DataPropertyContainer.h
@@ -15,7 +15,7 @@
 #ifndef DATAITEMVIEW_H
 #define DATAITEMVIEW_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class DataItem;
 class DataProperties;
diff --git a/GUI/coregui/Models/DataViewUtils.cpp b/GUI/coregui/Models/DataViewUtils.cpp
index 75b6f1492d9e1803dc9576467f851fec3d5b6188..65ca84877e66deee624c0344a704b06a12b38384 100644
--- a/GUI/coregui/Models/DataViewUtils.cpp
+++ b/GUI/coregui/Models/DataViewUtils.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "DataViewUtils.h"
-#include "Data1DViewItem.h"
-#include "DataItem.h"
-#include "DataPropertyContainer.h"
-#include "DomainObjectBuilder.h"
-#include "JobItem.h"
-#include "JobItemUtils.h"
-#include "UnitConverterUtils.h"
+#include "GUI/coregui/Models/DataViewUtils.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "GUI/coregui/Models/DomainObjectBuilder.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "Core/Instrument/UnitConverterUtils.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/DataViewUtils.h b/GUI/coregui/Models/DataViewUtils.h
index bb2c17dd726d575c598fa8adba5692a41d721ffc..6611cbe156eb5363d8de2d753e7b742c667162ab 100644
--- a/GUI/coregui/Models/DataViewUtils.h
+++ b/GUI/coregui/Models/DataViewUtils.h
@@ -15,7 +15,7 @@
 #ifndef DATAVIEWUTILS_H
 #define DATAVIEWUTILS_H
 
-#include "IUnitConverter.h"
+#include "Core/Instrument/IUnitConverter.h"
 #include <QString>
 #include <memory>
 
diff --git a/GUI/coregui/Models/DepthProbeInstrumentItem.cpp b/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
index 24b71b99352f213ee5a8c9a74e5a2ad56289916e..159c00df20b09e2662e8961fa475cdd8c69d5623 100644
--- a/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
+++ b/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "DepthProbeInstrumentItem.h"
-#include "AxesItems.h"
-#include "BeamDistributionItem.h"
-#include "BeamWavelengthItem.h"
-#include "DepthProbeSimulation.h"
-#include "SimpleUnitConverters.h"
-#include "SpecularBeamInclinationItem.h"
-#include "TransformToDomain.h"
-#include "Units.h"
+#include "GUI/coregui/Models/DepthProbeInstrumentItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamWavelengthItem.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "Core/Parametrization/Units.h"
 
 const QString DepthProbeInstrumentItem::P_BEAM = "Beam";
 const QString DepthProbeInstrumentItem::P_ZAXIS = "Z axis";
diff --git a/GUI/coregui/Models/DepthProbeInstrumentItem.h b/GUI/coregui/Models/DepthProbeInstrumentItem.h
index 13a63d9109ad12a11c88053e2443d94cc0731b93..39884656d2c970a8eefa99407e1c858e2077bf6c 100644
--- a/GUI/coregui/Models/DepthProbeInstrumentItem.h
+++ b/GUI/coregui/Models/DepthProbeInstrumentItem.h
@@ -15,7 +15,7 @@
 #ifndef DEPTHPROBEINSTRUMENTITEM_H
 #define DEPTHPROBEINSTRUMENTITEM_H
 
-#include "InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
 
 class DepthProbeSimulation;
 
diff --git a/GUI/coregui/Models/DetectorItems.cpp b/GUI/coregui/Models/DetectorItems.cpp
index 49843ded9b91690b33bd2920fcbdf4be9d631633..f2b5f0284f5ff5de358768958d237beeef9e6f5c 100644
--- a/GUI/coregui/Models/DetectorItems.cpp
+++ b/GUI/coregui/Models/DetectorItems.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "DetectorItems.h"
-#include "IDetector2D.h"
-#include "MaskItems.h"
-#include "ParameterTranslators.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "ResolutionFunctionItems.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "GUI/coregui/Models/ResolutionFunctionItems.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 using SessionItemUtils::GetVectorItem;
 
diff --git a/GUI/coregui/Models/DetectorItems.h b/GUI/coregui/Models/DetectorItems.h
index 0db555f8b7b7af8e318d02056d0b70fd56d06bf0..a05bcc5726147fe19f6cb789ead05c65f890de1d 100644
--- a/GUI/coregui/Models/DetectorItems.h
+++ b/GUI/coregui/Models/DetectorItems.h
@@ -15,7 +15,7 @@
 #ifndef DETECTORITEMS_H
 #define DETECTORITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class MaskContainerItem;
 class IDetector2D;
diff --git a/GUI/coregui/Models/DistributionItems.cpp b/GUI/coregui/Models/DistributionItems.cpp
index 2a3cb5635f912371b86ab42fb11d76725d486ccc..60c5bc1bff3ceaffd98a873defa2fd640e522fa9 100644
--- a/GUI/coregui/Models/DistributionItems.cpp
+++ b/GUI/coregui/Models/DistributionItems.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "DistributionItems.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "RangedDistributions.h"
-#include "RealLimitsItems.h"
+#include "GUI/coregui/Models/DistributionItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
 #include <cmath>
 
 namespace
diff --git a/GUI/coregui/Models/DistributionItems.h b/GUI/coregui/Models/DistributionItems.h
index 3a00bd3506eaa78c9a525a48a86ef8a2c3d133e2..c462e6df22aadfb1157dce9f9ae61340745a35cf 100644
--- a/GUI/coregui/Models/DistributionItems.h
+++ b/GUI/coregui/Models/DistributionItems.h
@@ -15,7 +15,7 @@
 #ifndef DISTRIBUTIONITEMS_H
 #define DISTRIBUTIONITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class IDistribution1D;
 class RangedDistribution;
diff --git a/GUI/coregui/Models/DocumentModel.cpp b/GUI/coregui/Models/DocumentModel.cpp
index 8e175ae9950dc08677913f5fc1aa0ce75f5ccfd6..aefcf1294211084cffa091a949933e3f403b79b9 100644
--- a/GUI/coregui/Models/DocumentModel.cpp
+++ b/GUI/coregui/Models/DocumentModel.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DocumentModel.h"
-#include "SimulationOptionsItem.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
 
 DocumentModel::DocumentModel(QObject* parent) : SessionModel(SessionXML::DocumentModelTag, parent)
 {
diff --git a/GUI/coregui/Models/DocumentModel.h b/GUI/coregui/Models/DocumentModel.h
index fdf7c8cc5bae8cb8c00f63ca21e7e6ee2ffd3d1f..a351151a9466bfbe7a11d485be107257b84a8035 100644
--- a/GUI/coregui/Models/DocumentModel.h
+++ b/GUI/coregui/Models/DocumentModel.h
@@ -15,7 +15,7 @@
 #ifndef DOCUMENTMODEL_H
 #define DOCUMENTMODEL_H
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 class SimulationOptionsItem;
 
diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp
index 90c439db893cd76f57be36ed09a83fd525f274f5..1b715d712c56381ba82331721f87b37c931bb892 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.cpp
+++ b/GUI/coregui/Models/DomainObjectBuilder.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "DomainObjectBuilder.h"
-#include "AxesItems.h"
-#include "BeamItems.h"
-#include "ComboProperty.h"
-#include "DepthProbeInstrumentItem.h"
-#include "GUIHelpers.h"
-#include "IDetector2D.h"
-#include "InstrumentItems.h"
-#include "InterferenceFunctionItems.h"
-#include "LayerItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleLayoutItem.h"
-#include "SimpleUnitConverters.h"
-#include "SpecularBeamInclinationItem.h"
-#include "TransformToDomain.h"
-#include "UnitConverter1D.h"
-#include "UnitConverterUtils.h"
-#include "Units.h"
+#include "GUI/coregui/Models/DomainObjectBuilder.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DepthProbeInstrumentItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "Core/Instrument/UnitConverter1D.h"
+#include "Core/Instrument/UnitConverterUtils.h"
+#include "Core/Parametrization/Units.h"
 
 std::unique_ptr<MultiLayer> DomainObjectBuilder::buildMultiLayer(const SessionItem& multilayer_item)
 {
diff --git a/GUI/coregui/Models/DomainObjectBuilder.h b/GUI/coregui/Models/DomainObjectBuilder.h
index 2187fab9a3bb2b65bb667740bd75bf11faa6aa2f..d513e1a9c5f93a607a271db0426345d24721c893 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.h
+++ b/GUI/coregui/Models/DomainObjectBuilder.h
@@ -15,7 +15,7 @@
 #ifndef DOMAINOBJECTBUILDER_H
 #define DOMAINOBJECTBUILDER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 
 class MultiLayer;
diff --git a/GUI/coregui/Models/DomainSimulationBuilder.cpp b/GUI/coregui/Models/DomainSimulationBuilder.cpp
index a8931c89745bfb609f7eb547ac3e66fe1079f809..14600caf446bf0419a174580ca6c5a7158943c26 100644
--- a/GUI/coregui/Models/DomainSimulationBuilder.cpp
+++ b/GUI/coregui/Models/DomainSimulationBuilder.cpp
@@ -12,29 +12,29 @@
 //
 // ************************************************************************** //
 
-#include "DomainSimulationBuilder.h"
-#include "AngularSpecScan.h"
-#include "AxesItems.h"
-#include "BackgroundItems.h"
-#include "BeamItems.h"
-#include "DepthProbeInstrumentItem.h"
-#include "DepthProbeSimulation.h"
-#include "DetectorItems.h"
-#include "DomainObjectBuilder.h"
-#include "FootprintItems.h"
-#include "GISASSimulation.h"
-#include "GUIHelpers.h"
-#include "IBackground.h"
-#include "IFootprintFactor.h"
-#include "InstrumentItems.h"
-#include "MultiLayer.h"
-#include "MultiLayerItem.h"
-#include "OffSpecSimulation.h"
-#include "SimulationOptionsItem.h"
-#include "SpecularBeamInclinationItem.h"
-#include "SpecularSimulation.h"
-#include "TransformToDomain.h"
-#include "Units.h"
+#include "GUI/coregui/Models/DomainSimulationBuilder.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/BackgroundItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/DepthProbeInstrumentItem.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/DomainObjectBuilder.h"
+#include "GUI/coregui/Models/FootprintItems.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/Beam/IFootprintFactor.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/DomainSimulationBuilder.h b/GUI/coregui/Models/DomainSimulationBuilder.h
index b8cc17b2060e14f481d2aca20d8eb84a8f065d89..ae8249d8c937712160fd7baf42b68ff4a8f993d9 100644
--- a/GUI/coregui/Models/DomainSimulationBuilder.h
+++ b/GUI/coregui/Models/DomainSimulationBuilder.h
@@ -15,7 +15,7 @@
 #ifndef DOMAINSIMULATIONBUILDER_H
 #define DOMAINSIMULATIONBUILDER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 
 class Simulation;
diff --git a/GUI/coregui/Models/FTDecayFunctionItems.cpp b/GUI/coregui/Models/FTDecayFunctionItems.cpp
index d0b4825c2433106bef67cf3923d44f23afaf29c0..395b07eed5f65d8e1d6a25586addb7cd2307a817 100644
--- a/GUI/coregui/Models/FTDecayFunctionItems.cpp
+++ b/GUI/coregui/Models/FTDecayFunctionItems.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FTDecayFunctionItems.h"
-#include "BornAgainNamespace.h"
-#include "Units.h"
+#include "GUI/coregui/Models/FTDecayFunctionItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Units.h"
 
 // --------------------------------------------------------------------------------------------- //
 
diff --git a/GUI/coregui/Models/FTDecayFunctionItems.h b/GUI/coregui/Models/FTDecayFunctionItems.h
index 2f2d967ecf3a06e507b1688843c76f6470383540..17efb3a463d8227982ac55361e264c11701cf5e0 100644
--- a/GUI/coregui/Models/FTDecayFunctionItems.h
+++ b/GUI/coregui/Models/FTDecayFunctionItems.h
@@ -15,8 +15,8 @@
 #ifndef FTDECAYFUNCTIONITEMS_H
 #define FTDECAYFUNCTIONITEMS_H
 
-#include "FTDecayFunctions.h"
-#include "SessionItem.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ FTDecayFunction1DItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/FTDistributionItems.cpp b/GUI/coregui/Models/FTDistributionItems.cpp
index c92a239b8fb7653ffabaa6d6d5f43cd2979750ae..176ce5cde7306c2613feedbfa788b48cb11b7085 100644
--- a/GUI/coregui/Models/FTDistributionItems.cpp
+++ b/GUI/coregui/Models/FTDistributionItems.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FTDistributionItems.h"
-#include "BornAgainNamespace.h"
-#include "Units.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Units.h"
 
 const QString FTDistribution1DItem::P_OMEGA = QString::fromStdString(BornAgain::Omega);
 
diff --git a/GUI/coregui/Models/FTDistributionItems.h b/GUI/coregui/Models/FTDistributionItems.h
index 1f3d18d3256691d5ab7e6299e3240f7ad7de4103..e596ebfb5c90d3bcc448cda4aef00a7fa266f817 100644
--- a/GUI/coregui/Models/FTDistributionItems.h
+++ b/GUI/coregui/Models/FTDistributionItems.h
@@ -15,9 +15,9 @@
 #ifndef FTDISTRIBUTIONITEMS_H
 #define FTDISTRIBUTIONITEMS_H
 
-#include "FTDistributions1D.h"
-#include "FTDistributions2D.h"
-#include "SessionItem.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ FTDistribution1DItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/FilterPropertyProxy.cpp b/GUI/coregui/Models/FilterPropertyProxy.cpp
index f14bae97a92a189f1512ace519522daafd83cbc0..21a2d38d3e6483ff05df7a29283c3af9b2a13f1f 100644
--- a/GUI/coregui/Models/FilterPropertyProxy.cpp
+++ b/GUI/coregui/Models/FilterPropertyProxy.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FilterPropertyProxy.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 int FilterPropertyProxy::columnCount(const QModelIndex& parent) const
 {
diff --git a/GUI/coregui/Models/FilterPropertyProxy.h b/GUI/coregui/Models/FilterPropertyProxy.h
index 75fd63a557ea27ff85057f0ec202f21bc9153a18..6f976660a8de91c987c9698f9f2601381c04f6c7 100644
--- a/GUI/coregui/Models/FilterPropertyProxy.h
+++ b/GUI/coregui/Models/FilterPropertyProxy.h
@@ -14,7 +14,7 @@
 #ifndef FILTERPROPERTYPROXY_H
 #define FILTERPROPERTYPROXY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QSortFilterProxyModel>
 
 //!
diff --git a/GUI/coregui/Models/FitParameterHelper.cpp b/GUI/coregui/Models/FitParameterHelper.cpp
index cbabcabaac196b9e6d564df0bcc1064b17c5f56c..0acdd6dd1ef9d78f9a74e57dd4ad390f969a4e78 100644
--- a/GUI/coregui/Models/FitParameterHelper.cpp
+++ b/GUI/coregui/Models/FitParameterHelper.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FitParameterHelper.h"
-#include "FitParameterItems.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "ModelPath.h"
-#include "ParameterTreeItems.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
 
 //! Creates fit parameter from given ParameterItem, sets starting value to the value
 //! of ParameterItem, copies link.
diff --git a/GUI/coregui/Models/FitParameterHelper.h b/GUI/coregui/Models/FitParameterHelper.h
index a51f8df0d4a3eb075f624a3fce979a37b8e90cdf..c478d415f72047a0d6fb6dbcd4eba934e3102cec 100644
--- a/GUI/coregui/Models/FitParameterHelper.h
+++ b/GUI/coregui/Models/FitParameterHelper.h
@@ -15,7 +15,7 @@
 #ifndef FITPARAMETERHELPER_H
 #define FITPARAMETERHELPER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStringList>
 
 class ParameterItem;
diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp
index 5a1d0b6919b9a0f161b6338c9c8176234207ccf8..777f45fdbc2838dfea04b2dc2e2b3ec9f16eb0e9 100644
--- a/GUI/coregui/Models/FitParameterItems.cpp
+++ b/GUI/coregui/Models/FitParameterItems.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "FitParameterItems.h"
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "JobItem.h"
-#include "ModelPath.h"
-#include "Parameter.h"
-#include "ParameterTreeItems.h"
-#include "Parameters.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Fit/Kernel/Parameter.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "Fit/Kernel/Parameters.h"
 #include <cmath>
 
 namespace
diff --git a/GUI/coregui/Models/FitParameterItems.h b/GUI/coregui/Models/FitParameterItems.h
index 41be0bc9469f269e3eb0dc252eb04aa4cb909b38..fe7ebde34a4d3673d6aedd39d6b8f7267869340c 100644
--- a/GUI/coregui/Models/FitParameterItems.h
+++ b/GUI/coregui/Models/FitParameterItems.h
@@ -15,8 +15,8 @@
 #ifndef FITPARAMETERITEMS_H
 #define FITPARAMETERITEMS_H
 
-#include "AttLimits.h"
-#include "SessionItem.h"
+#include "Fit/Tools/AttLimits.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 //! FitParameterItems is a collection of items to define fit parameters in GUI.
 
diff --git a/GUI/coregui/Models/FitParameterProxyModel.cpp b/GUI/coregui/Models/FitParameterProxyModel.cpp
index fbbdf9a15dc7fe88841feda749c9dab165399e72..d36b0c8c8d77992caea8f2c5f9febf5278a952f0 100644
--- a/GUI/coregui/Models/FitParameterProxyModel.cpp
+++ b/GUI/coregui/Models/FitParameterProxyModel.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FitParameterProxyModel.h"
-#include "FitParameterHelper.h"
-#include "FitParameterItems.h"
-#include "GUIHelpers.h"
-#include "JobModel.h"
-#include "ModelPath.h"
-#include "SessionItemUtils.h"
+#include "GUI/coregui/Models/FitParameterProxyModel.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
 #include <QMimeData>
 
 using SessionItemUtils::ParentRow;
diff --git a/GUI/coregui/Models/FitParameterProxyModel.h b/GUI/coregui/Models/FitParameterProxyModel.h
index b43d57feb156242868d3629435939158e6242b5a..fdd3444cad342e80694666dbeb375dc3efa566e3 100644
--- a/GUI/coregui/Models/FitParameterProxyModel.h
+++ b/GUI/coregui/Models/FitParameterProxyModel.h
@@ -15,7 +15,7 @@
 #ifndef FITPARAMETERPROXYMODEL_H
 #define FITPARAMETERPROXYMODEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QAbstractItemModel>
 #include <QStringList>
 
diff --git a/GUI/coregui/Models/FitSuiteItem.cpp b/GUI/coregui/Models/FitSuiteItem.cpp
index d8cc985bbab649354cc22ca594e6f22e28018fc4..a65d149980003ee424443f3274a369c22aaf9ff5 100644
--- a/GUI/coregui/Models/FitSuiteItem.cpp
+++ b/GUI/coregui/Models/FitSuiteItem.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FitSuiteItem.h"
-#include "FitParameterItems.h"
-#include "MinimizerItem.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/MinimizerItem.h"
 
 const QString FitSuiteItem::P_UPDATE_INTERVAL = "Update interval";
 const QString FitSuiteItem::P_ITERATION_COUNT = "Number of iterations";
diff --git a/GUI/coregui/Models/FitSuiteItem.h b/GUI/coregui/Models/FitSuiteItem.h
index a2ffbc7991576f2c9ec2cfc8407550962a989844..eb7f81fe7a75eaf63d8bc05dbb192997b102b2d6 100644
--- a/GUI/coregui/Models/FitSuiteItem.h
+++ b/GUI/coregui/Models/FitSuiteItem.h
@@ -15,7 +15,7 @@
 #ifndef FITSUITEITEM_H
 #define FITSUITEITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class FitParameterContainerItem;
 class MinimizerContainerItem;
diff --git a/GUI/coregui/Models/FootprintItems.cpp b/GUI/coregui/Models/FootprintItems.cpp
index bbc388d87f9116ae0917b1c636b38e3f71541181..3c08f702e26c2ba6b692fd63622800625a738c63 100644
--- a/GUI/coregui/Models/FootprintItems.cpp
+++ b/GUI/coregui/Models/FootprintItems.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FootprintItems.h"
-#include "BornAgainNamespace.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/FootprintItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/FootprintItems.h b/GUI/coregui/Models/FootprintItems.h
index 0e2b269b03d159acd22f3c812d4de534c4d7010c..3f36c4ec1ca7aaf545e732d60218e4420e85e733 100644
--- a/GUI/coregui/Models/FootprintItems.h
+++ b/GUI/coregui/Models/FootprintItems.h
@@ -15,7 +15,7 @@
 #ifndef FOOTPRINTITEMS_H
 #define FOOTPRINTITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class IFootprintFactor;
 
diff --git a/GUI/coregui/Models/FormFactorItems.cpp b/GUI/coregui/Models/FormFactorItems.cpp
index 4cf62eb0df59f6633b3529461e4a0e58255689e6..e4e263815aa22794b87bec6dab0dd1fa5a5d78a5 100644
--- a/GUI/coregui/Models/FormFactorItems.cpp
+++ b/GUI/coregui/Models/FormFactorItems.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorItems.h"
-#include "BornAgainNamespace.h"
-#include "FormFactors.h"
-#include "Units.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "Core/Parametrization/Units.h"
 
 /* ------------------------------------------------ */
 
diff --git a/GUI/coregui/Models/FormFactorItems.h b/GUI/coregui/Models/FormFactorItems.h
index 096f3e3e7ea120f0ade18150853da65bac9907a1..0196ca242352cd90c8695830e2a4219ca10fe8cf 100644
--- a/GUI/coregui/Models/FormFactorItems.h
+++ b/GUI/coregui/Models/FormFactorItems.h
@@ -15,7 +15,7 @@
 #ifndef FORMFACTORITEMS_H
 #define FORMFACTORITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class IFormFactor;
 
diff --git a/GUI/coregui/Models/GUIDomainSampleVisitor.cpp b/GUI/coregui/Models/GUIDomainSampleVisitor.cpp
index fa7abfeb2eea10a7a88bbe2c470eeebc97260501..112feadd3e0ec948eb65f7a8052ae782fbc6edda 100644
--- a/GUI/coregui/Models/GUIDomainSampleVisitor.cpp
+++ b/GUI/coregui/Models/GUIDomainSampleVisitor.cpp
@@ -12,37 +12,37 @@
 //
 // ************************************************************************** //
 
-#include "GUIDomainSampleVisitor.h"
-#include "ComboProperty.h"
-#include "Crystal.h"
-#include "ExternalProperty.h"
-#include "FormFactorItems.h"
-#include "FormFactors.h"
-#include "GUIHelpers.h"
-#include "Layer.h"
-#include "LayerItem.h"
-#include "Material.h"
-#include "MaterialItemUtils.h"
-#include "MaterialModel.h"
-#include "MesoCrystal.h"
-#include "MesoCrystalItem.h"
-#include "MultiLayer.h"
-#include "MultiLayerItem.h"
-#include "MultiLayerUtils.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistribution.h"
-#include "ParticleItem.h"
-#include "ParticleLayout.h"
-#include "ParticleLayoutItem.h"
-#include "RotationItems.h"
-#include "SampleModel.h"
-#include "SessionItemUtils.h"
-#include "TransformFromDomain.h"
-#include "TransformationItem.h"
-#include "Units.h"
+#include "GUI/coregui/Models/GUIDomainSampleVisitor.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "Core/Particle/Crystal.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Multilayer/Layer.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "Core/Material/Material.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Models/RotationItems.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "GUI/coregui/Models/TransformationItem.h"
+#include "Core/Parametrization/Units.h"
 
 using SessionItemUtils::SetVectorItem;
 
diff --git a/GUI/coregui/Models/GUIDomainSampleVisitor.h b/GUI/coregui/Models/GUIDomainSampleVisitor.h
index 3db72c853fa390f10d61a42cb342be81cd4fa315..372ab9b76203eb82c8b2d0418fb322a39723f534 100644
--- a/GUI/coregui/Models/GUIDomainSampleVisitor.h
+++ b/GUI/coregui/Models/GUIDomainSampleVisitor.h
@@ -15,7 +15,7 @@
 #ifndef GUIDOMAINSAMPLEVISITOR_H
 #define GUIDOMAINSAMPLEVISITOR_H
 
-#include "INodeVisitor.h"
+#include "Core/Parametrization/INodeVisitor.h"
 #include <QMap>
 #include <QString>
 
diff --git a/GUI/coregui/Models/GUIExamplesFactory.cpp b/GUI/coregui/Models/GUIExamplesFactory.cpp
index 8b7782ac67144e027d788de89b26cb358f1d95eb..b23da6482bde05195a2b14881f902a65b46580fa 100644
--- a/GUI/coregui/Models/GUIExamplesFactory.cpp
+++ b/GUI/coregui/Models/GUIExamplesFactory.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "GUIExamplesFactory.h"
-#include "GUIObjectBuilder.h"
-#include "MultiLayer.h"
-#include "SampleBuilderFactory.h"
+#include "GUI/coregui/Models/GUIExamplesFactory.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
 #include <memory>
 
 //! Defines correspondance between example name and real name of simulation from SimulationFactory
diff --git a/GUI/coregui/Models/GUIExamplesFactory.h b/GUI/coregui/Models/GUIExamplesFactory.h
index 5609811cf4f3345a6f2903e84c63daa73388d83d..93ef11b69dae2845e557d76dc57d961e4fa3f04d 100644
--- a/GUI/coregui/Models/GUIExamplesFactory.h
+++ b/GUI/coregui/Models/GUIExamplesFactory.h
@@ -15,7 +15,7 @@
 #ifndef GUIEXAMPLESFACTORY_H
 #define GUIEXAMPLESFACTORY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 
 class SessionItem;
diff --git a/GUI/coregui/Models/GUIObjectBuilder.cpp b/GUI/coregui/Models/GUIObjectBuilder.cpp
index 374d2219a6997b49787191635f87e9679e7616f4..a2720a69a4e23aa144aedeb957a0133f859a5306 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.cpp
+++ b/GUI/coregui/Models/GUIObjectBuilder.cpp
@@ -12,22 +12,22 @@
 //
 // ************************************************************************** //
 
-#include "GUIObjectBuilder.h"
-#include "BeamItems.h"
-#include "DocumentModel.h"
-#include "GISASSimulation.h"
-#include "GUIDomainSampleVisitor.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "MultiLayer.h"
-#include "OffSpecSimulation.h"
-#include "SampleModel.h"
-#include "Simulation.h"
-#include "SimulationOptionsItem.h"
-#include "SpecularSimulation.h"
-#include "TransformFromDomain.h"
-#include "Units.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/Models/GUIDomainSampleVisitor.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Core/Simulation/Simulation.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/GUIObjectBuilder.h b/GUI/coregui/Models/GUIObjectBuilder.h
index c1417bf9f1451683bc046e8702fc074e9add1ea6..78d84599dec9e6db6ea7f424ec1766628348d5a5 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.h
+++ b/GUI/coregui/Models/GUIObjectBuilder.h
@@ -15,7 +15,7 @@
 #ifndef GUIOBJECTBUILDER_H
 #define GUIOBJECTBUILDER_H
 
-#include "INodeVisitor.h"
+#include "Core/Parametrization/INodeVisitor.h"
 #include <QMap>
 #include <QString>
 
diff --git a/GUI/coregui/Models/GroupInfo.cpp b/GUI/coregui/Models/GroupInfo.cpp
index 4eb690e826300c8d49ac50397b03135192840d76..340a682141dbb5ea4060c47d7864b26eeacfd3cb 100644
--- a/GUI/coregui/Models/GroupInfo.cpp
+++ b/GUI/coregui/Models/GroupInfo.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "GroupInfo.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/Models/GroupInfo.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 
 GroupInfo::GroupInfo(const QString& groupType, bool is_sorted)
     : m_groupType(groupType), is_sorted(is_sorted)
diff --git a/GUI/coregui/Models/GroupInfo.h b/GUI/coregui/Models/GroupInfo.h
index 52e468ca1bdc0e16640481671d821d6d93a03307..c3a0f1ce0f63459a54dcb50a411d04a2c230e231 100644
--- a/GUI/coregui/Models/GroupInfo.h
+++ b/GUI/coregui/Models/GroupInfo.h
@@ -15,7 +15,7 @@
 #ifndef GROUPINFO_H
 #define GROUPINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <QStringList>
 #include <QVector>
diff --git a/GUI/coregui/Models/GroupInfoCatalogue.cpp b/GUI/coregui/Models/GroupInfoCatalogue.cpp
index 1f23633edb8ca15a76e7960793b0aebd11853f5a..e965fb20885a846b2cc1398d28573cd4536769d9 100644
--- a/GUI/coregui/Models/GroupInfoCatalogue.cpp
+++ b/GUI/coregui/Models/GroupInfoCatalogue.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "GroupInfoCatalogue.h"
-#include "GUIHelpers.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/GroupInfoCatalogue.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 GroupInfoCatalogue::GroupInfoCatalogue()
 {
diff --git a/GUI/coregui/Models/GroupInfoCatalogue.h b/GUI/coregui/Models/GroupInfoCatalogue.h
index fcbdbf8b6aed2aaf649f53679aefed7ec024e51e..501e33c6dd8cd18e4140ec06f8cf29be4aff00a7 100644
--- a/GUI/coregui/Models/GroupInfoCatalogue.h
+++ b/GUI/coregui/Models/GroupInfoCatalogue.h
@@ -15,7 +15,7 @@
 #ifndef GROUPINFOCATALOGUE_H
 #define GROUPINFOCATALOGUE_H
 
-#include "GroupInfo.h"
+#include "GUI/coregui/Models/GroupInfo.h"
 
 //! Catalogue to hold info for GroupProperty creation.
 
diff --git a/GUI/coregui/Models/GroupItem.cpp b/GUI/coregui/Models/GroupItem.cpp
index 1ec6f615aaeb0659fbe0471392323fab35149000..65c13ae8c293eb5975c3bd0233dc6cbcf421f1dd 100644
--- a/GUI/coregui/Models/GroupItem.cpp
+++ b/GUI/coregui/Models/GroupItem.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "GroupItem.h"
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "GroupItemController.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItemController.h"
 
 const QString GroupItem::T_ITEMS = "Item tag";
 
diff --git a/GUI/coregui/Models/GroupItem.h b/GUI/coregui/Models/GroupItem.h
index cc8d051f08923321f7dd098f02adfd03718590e3..1a58abef48e0a114afd2524cadd0aa6bee903934 100644
--- a/GUI/coregui/Models/GroupItem.h
+++ b/GUI/coregui/Models/GroupItem.h
@@ -15,8 +15,8 @@
 #ifndef GROUPITEM_H
 #define GROUPITEM_H
 
-#include "GroupInfo.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Models/GroupInfo.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <memory>
 
 class GroupInfo;
diff --git a/GUI/coregui/Models/GroupItemController.cpp b/GUI/coregui/Models/GroupItemController.cpp
index 2642e06ac7c6f447b8bd9314dbf6afafceaebc15..5afe2e030bf001e1a000721e345780ad1cb7d0c5 100644
--- a/GUI/coregui/Models/GroupItemController.cpp
+++ b/GUI/coregui/Models/GroupItemController.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "GroupItemController.h"
-#include "ComboProperty.h"
-#include "ItemFactory.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Models/GroupItemController.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 GroupItemController::GroupItemController(SessionItem* groupItem, GroupInfo groupInfo)
     : m_groupItem(groupItem), m_groupInfo(groupInfo)
diff --git a/GUI/coregui/Models/GroupItemController.h b/GUI/coregui/Models/GroupItemController.h
index 77b3180a07fdd5488a406937479e603f2dae6032..d61860015c04bbc93bf57c93df493180843850c9 100644
--- a/GUI/coregui/Models/GroupItemController.h
+++ b/GUI/coregui/Models/GroupItemController.h
@@ -15,7 +15,7 @@
 #ifndef GROUPITEMCONTROLLER_H
 #define GROUPITEMCONTROLLER_H
 
-#include "GroupInfo.h"
+#include "GUI/coregui/Models/GroupInfo.h"
 #include <QStringList>
 #include <QVariant>
 
diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp
index 5b555a44b54c97fa59ddfee1d35eedab9ae287c7..4c14240a15fcc2151db0bca453f9531c6c327182 100644
--- a/GUI/coregui/Models/InstrumentItems.cpp
+++ b/GUI/coregui/Models/InstrumentItems.cpp
@@ -12,23 +12,23 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentItems.h"
-#include "AxesItems.h"
-#include "BackgroundItems.h"
-#include "BeamItems.h"
-#include "DataItem.h"
-#include "DetectorItems.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "IDetector2D.h"
-#include "Instrument.h"
-#include "ItemFileNameUtils.h"
-#include "JobItemUtils.h"
-#include "MaskItems.h"
-#include "PointwiseAxisItem.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
-#include "UnitConverter1D.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/BackgroundItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Instrument/Instrument.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Core/Instrument/UnitConverter1D.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/InstrumentItems.h b/GUI/coregui/Models/InstrumentItems.h
index 39e04562ea276598f003abbbe490cf58846befaa..4e74bf811a7b8b5b2224268fbded4e31f70cb1f6 100644
--- a/GUI/coregui/Models/InstrumentItems.h
+++ b/GUI/coregui/Models/InstrumentItems.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTITEMS_H
 #define INSTRUMENTITEMS_H
 
-#include "BeamItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
 
 class BackgroundItem;
 class DataItem;
diff --git a/GUI/coregui/Models/InstrumentModel.cpp b/GUI/coregui/Models/InstrumentModel.cpp
index 76db2e9151bc1d9be6b19b007ad31b36c2f8b7ee..a4597317e4fbca1e4044ed5e1c5d81e52022230c 100644
--- a/GUI/coregui/Models/InstrumentModel.cpp
+++ b/GUI/coregui/Models/InstrumentModel.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentModel.h"
-#include "InstrumentItems.h"
-#include "SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
 
 InstrumentModel::InstrumentModel(QObject* parent)
     : SessionModel(SessionXML::InstrumentModelTag, parent)
diff --git a/GUI/coregui/Models/InstrumentModel.h b/GUI/coregui/Models/InstrumentModel.h
index a2942b0635c3fd1c4dfa283c2790aa9569f0e8a5..60ed2285038a8aef3484892dd30db4fc2c77a307 100644
--- a/GUI/coregui/Models/InstrumentModel.h
+++ b/GUI/coregui/Models/InstrumentModel.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTMODEL_H
 #define INSTRUMENTMODEL_H
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 class InstrumentItem;
 
diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp
index 9f80437bade46828ef9a8c7f8a1fcf1eceff73d5..b20be3de7e419b622d49414b7a82d0fbe4901f59 100644
--- a/GUI/coregui/Models/IntensityDataItem.cpp
+++ b/GUI/coregui/Models/IntensityDataItem.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataItem.h"
-#include "AxesItems.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "ImportDataUtils.h"
-#include "JobItemUtils.h"
-#include "MaskItems.h"
-#include "MaskUnitsConverter.h"
-#include "ProjectionItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/IntensityDataItem.h b/GUI/coregui/Models/IntensityDataItem.h
index ba565959e6b6359be985bd01aa633cd6bfe512a6..8dfac99ebfeba9c96e83f8fe9120af612246f20d 100644
--- a/GUI/coregui/Models/IntensityDataItem.h
+++ b/GUI/coregui/Models/IntensityDataItem.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAITEM_H
 #define INTENSITYDATAITEM_H
 
-#include "DataItem.h"
+#include "GUI/coregui/Models/DataItem.h"
 
 class BasicAxisItem;
 class MaskContainerItem;
diff --git a/GUI/coregui/Models/InterferenceFunctionItems.cpp b/GUI/coregui/Models/InterferenceFunctionItems.cpp
index 6c4e206a957e05501d4766da9c256ffc2e540688..116d5552b858cf79ecfaa753632118b354e0ad5b 100644
--- a/GUI/coregui/Models/InterferenceFunctionItems.cpp
+++ b/GUI/coregui/Models/InterferenceFunctionItems.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionItems.h"
-#include "BornAgainNamespace.h"
-#include "FTDecayFunctionItems.h"
-#include "FTDecayFunctions.h"
-#include "FTDistributionItems.h"
-#include "FTDistributions2D.h"
-#include "GroupItem.h"
-#include "InterferenceFunctions.h"
-#include "Lattice2DItems.h"
-#include "ModelPath.h"
-#include "Units.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/FTDecayFunctionItems.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/InterferenceFunctionItems.h b/GUI/coregui/Models/InterferenceFunctionItems.h
index f2303b29f9c0f226e12c1ce76d096a513fd6487d..a3a13acf5de791ca0784306bc2a3eea812279766 100644
--- a/GUI/coregui/Models/InterferenceFunctionItems.h
+++ b/GUI/coregui/Models/InterferenceFunctionItems.h
@@ -15,7 +15,7 @@
 #ifndef INTERFERENCEFUNCTIONITEMS_H
 #define INTERFERENCEFUNCTIONITEMS_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 class IInterferenceFunction;
 
 class BA_CORE_API_ InterferenceFunctionItem : public SessionGraphicsItem
diff --git a/GUI/coregui/Models/ItemCatalogue.cpp b/GUI/coregui/Models/ItemCatalogue.cpp
index 2c33a0d7578ebe14bba3f3be31d9f17ad3b2f596..35e59aad6a294b8c99324e6df99c5c79d9467845 100644
--- a/GUI/coregui/Models/ItemCatalogue.cpp
+++ b/GUI/coregui/Models/ItemCatalogue.cpp
@@ -12,59 +12,59 @@
 //
 // ************************************************************************** //
 
-#include "ItemCatalogue.h"
-#include "AxesItems.h"
-#include "BackgroundItems.h"
-#include "BeamAngleItems.h"
-#include "BeamItems.h"
-#include "BeamWavelengthItem.h"
-#include "Data1DViewItem.h"
-#include "DataProperties.h"
-#include "DataPropertyContainer.h"
-#include "DepthProbeInstrumentItem.h"
-#include "DetectorItems.h"
-#include "FTDecayFunctionItems.h"
-#include "FTDistributionItems.h"
-#include "FitParameterItems.h"
-#include "FitSuiteItem.h"
-#include "FootprintItems.h"
-#include "FormFactorItems.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "InstrumentItems.h"
-#include "IntensityDataItem.h"
-#include "InterferenceFunctionItems.h"
-#include "JobItem.h"
-#include "Lattice2DItems.h"
-#include "LayerItem.h"
-#include "LayerRoughnessItems.h"
-#include "MaskItems.h"
-#include "MaterialDataItems.h"
-#include "MaterialItem.h"
-#include "MaterialItemContainer.h"
-#include "MesoCrystalItem.h"
-#include "MinimizerItem.h"
-#include "MultiLayerItem.h"
-#include "ParameterTreeItems.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "PointwiseAxisItem.h"
-#include "ProjectionItems.h"
-#include "PropertyItem.h"
-#include "RealDataItem.h"
-#include "RealLimitsItems.h"
-#include "RectangularDetectorItem.h"
-#include "ResolutionFunctionItems.h"
-#include "RotationItems.h"
-#include "SimulationOptionsItem.h"
-#include "SpecularBeamInclinationItem.h"
-#include "SpecularDataItem.h"
-#include "SphericalDetectorItem.h"
-#include "TransformationItem.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/ItemCatalogue.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/BackgroundItems.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/BeamWavelengthItem.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/DataProperties.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "GUI/coregui/Models/DepthProbeInstrumentItem.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/FTDecayFunctionItems.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/FootprintItems.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/LayerRoughnessItems.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialItemContainer.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/MinimizerItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
+#include "GUI/coregui/Models/PropertyItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "GUI/coregui/Models/ResolutionFunctionItems.h"
+#include "GUI/coregui/Models/RotationItems.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Models/SphericalDetectorItem.h"
+#include "GUI/coregui/Models/TransformationItem.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 ItemCatalogue::ItemCatalogue()
 {
diff --git a/GUI/coregui/Models/ItemCatalogue.h b/GUI/coregui/Models/ItemCatalogue.h
index 555a209b17fcc5f872e2adc0236c5ffac72370ba..0477f4afb91ea8c5d0231cf9fc06cec24815c8cc 100644
--- a/GUI/coregui/Models/ItemCatalogue.h
+++ b/GUI/coregui/Models/ItemCatalogue.h
@@ -15,8 +15,8 @@
 #ifndef ITEMCATALOGUE_H
 #define ITEMCATALOGUE_H
 
-#include "IFactory.h"
-#include "WinDllMacros.h"
+#include "Core/StandardSamples/IFactory.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStringList>
 #include <memory>
 
diff --git a/GUI/coregui/Models/ItemFactory.cpp b/GUI/coregui/Models/ItemFactory.cpp
index f1fdebd8202079edf5118640e0bcd6b069129c51..dda2263d9240bf19bff43341e640afa9aca57347 100644
--- a/GUI/coregui/Models/ItemFactory.cpp
+++ b/GUI/coregui/Models/ItemFactory.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ItemFactory.h"
-#include "GUIHelpers.h"
-#include "ItemCatalogue.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/ItemCatalogue.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ItemFileNameUtils.cpp b/GUI/coregui/Models/ItemFileNameUtils.cpp
index 3638647a5b1781019e1177f9828b304e54d44109..0240ee3120483b4e73ac924d18b8d438a8991fa7 100644
--- a/GUI/coregui/Models/ItemFileNameUtils.cpp
+++ b/GUI/coregui/Models/ItemFileNameUtils.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ItemFileNameUtils.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "JobItem.h"
-#include "RealDataItem.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ItemFileNameUtils.h b/GUI/coregui/Models/ItemFileNameUtils.h
index 84d98f69c7feb2e6431b8e8e8b35a5aad538a71a..36c626a58286d8f33e9f9013b13ebfe3f3fe5115 100644
--- a/GUI/coregui/Models/ItemFileNameUtils.h
+++ b/GUI/coregui/Models/ItemFileNameUtils.h
@@ -15,7 +15,7 @@
 #ifndef JOBITEMFUNCTIONS_H
 #define JOBITEMFUNCTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 class InstrumentItem;
diff --git a/GUI/coregui/Models/JobItem.cpp b/GUI/coregui/Models/JobItem.cpp
index d4ccb85a3156aa9de09dbf9031f24ba008f21f9b..41b6e7caf926643683e7022586f12b2da0e149a8 100644
--- a/GUI/coregui/Models/JobItem.cpp
+++ b/GUI/coregui/Models/JobItem.cpp
@@ -12,23 +12,23 @@
 //
 // ************************************************************************** //
 
-#include "JobItem.h"
-#include "ComboProperty.h"
-#include "Data1DViewItem.h"
-#include "FitSuiteItem.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "IntensityDataItem.h"
-#include "ItemFileNameUtils.h"
-#include "JobItemUtils.h"
-#include "MaskUnitsConverter.h"
-#include "MaterialItemContainer.h"
-#include "MultiLayerItem.h"
-#include "ParameterTreeItems.h"
-#include "RealDataItem.h"
-#include "SimulationOptionsItem.h"
-#include "SpecularDataItem.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h"
+#include "GUI/coregui/Models/MaterialItemContainer.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 const QString JobItem::P_IDENTIFIER = "Identifier";
 const QString JobItem::P_SAMPLE_NAME = "Sample";
diff --git a/GUI/coregui/Models/JobItem.h b/GUI/coregui/Models/JobItem.h
index 07652cd4db88c4067e92bcec1d2f1f13f1c2a87a..56d223e4812757992ca757877dbc7b136dcd7be3 100644
--- a/GUI/coregui/Models/JobItem.h
+++ b/GUI/coregui/Models/JobItem.h
@@ -15,7 +15,7 @@
 #ifndef JOBITEM_H
 #define JOBITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class DataItem;
 class Data1DViewItem;
diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp
index 02f5ff1da35f23293407fc7fd466d2597a62e5ff..00e1e11b1dad5e2863a5f7b5c56981874730d172 100644
--- a/GUI/coregui/Models/JobItemUtils.cpp
+++ b/GUI/coregui/Models/JobItemUtils.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "JobItemUtils.h"
-#include "ComboProperty.h"
-#include "DataItem.h"
-#include "DomainObjectBuilder.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "JobItem.h"
-#include "RealDataItem.h"
-#include "Simulation.h"
-#include "UnitConverterUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DomainObjectBuilder.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Instrument/UnitConverterUtils.h"
 #include <QDebug>
 #include <QFileInfo>
 
diff --git a/GUI/coregui/Models/JobItemUtils.h b/GUI/coregui/Models/JobItemUtils.h
index 2c08ec1b3ec939898ff36df3235cea4673e7d9c4..6241d48e555426b94b9090f4247b89ef5854dbb8 100644
--- a/GUI/coregui/Models/JobItemUtils.h
+++ b/GUI/coregui/Models/JobItemUtils.h
@@ -15,8 +15,8 @@
 #ifndef JOBITEMUTILS_H
 #define JOBITEMUTILS_H
 
-#include "ComboProperty.h"
-#include "IDetector.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "Core/Instrument/IDetector.h"
 #include <QMap>
 
 class DataItem;
diff --git a/GUI/coregui/Models/JobModel.cpp b/GUI/coregui/Models/JobModel.cpp
index 03f127be3e89d4394e1d102958cee1d5fc0d3c32..a497c751a5ca0e59f5093a4192d4c0fdaf777ebd 100644
--- a/GUI/coregui/Models/JobModel.cpp
+++ b/GUI/coregui/Models/JobModel.cpp
@@ -12,22 +12,22 @@
 //
 // ************************************************************************** //
 
-#include "JobModel.h"
-#include "AxesItems.h"
-#include "FitSuiteItem.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "InstrumentItems.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "JobItemUtils.h"
-#include "JobModelFunctions.h"
-#include "JobQueueData.h"
-#include "MultiLayerItem.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTreeUtils.h"
-#include "RealDataItem.h"
-#include "SimulationOptionsItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/JobModelFunctions.h"
+#include "GUI/coregui/Models/JobQueueData.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/ParameterTreeUtils.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
 
 JobModel::JobModel(QObject* parent)
     : SessionModel(SessionXML::JobModelTag, parent), m_queue_data(nullptr)
diff --git a/GUI/coregui/Models/JobModel.h b/GUI/coregui/Models/JobModel.h
index ea106c2bdfb06df12f8fa4aa5edd8d6c00ae85bd..df420d44cc8cd3628b4904c2a2cb68ec92965d1f 100644
--- a/GUI/coregui/Models/JobModel.h
+++ b/GUI/coregui/Models/JobModel.h
@@ -14,7 +14,7 @@
 #ifndef JOBMODEL_H
 #define JOBMODEL_H
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 class JobQueueData;
 class JobItem;
 class MultiLayerItem;
diff --git a/GUI/coregui/Models/JobModelFunctions.cpp b/GUI/coregui/Models/JobModelFunctions.cpp
index 288fb65382c7869d9fca9c9c17c84f4b5e76f77d..c7cb9f6cb3322ddb8e768822fcff03c2d5f7d7f4 100644
--- a/GUI/coregui/Models/JobModelFunctions.cpp
+++ b/GUI/coregui/Models/JobModelFunctions.cpp
@@ -12,30 +12,30 @@
 //
 // ************************************************************************** //
 
-#include "JobModelFunctions.h"
-#include "Data1DViewItem.h"
-#include "DataPropertyContainer.h"
-#include "DetectorFunctions.h"
-#include "DetectorItems.h"
-#include "DomainObjectBuilder.h"
-#include "FitSuiteItem.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "IDetector2D.h"
-#include "Instrument.h"
-#include "InstrumentItems.h"
-#include "IntensityDataItem.h"
-#include "ItemFileNameUtils.h"
-#include "JobItem.h"
-#include "JobItemUtils.h"
-#include "JobModel.h"
-#include "MaskItems.h"
-#include "MaskUnitsConverter.h"
-#include "MaterialItemContainer.h"
-#include "MaterialItemUtils.h"
-#include "MultiLayerItem.h"
-#include "PointwiseAxisItem.h"
-#include "RealDataItem.h"
+#include "GUI/coregui/Models/JobModelFunctions.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/DomainObjectBuilder.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Instrument/Instrument.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h"
+#include "GUI/coregui/Models/MaterialItemContainer.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
 #include <map>
 
 namespace
diff --git a/GUI/coregui/Models/JobModelFunctions.h b/GUI/coregui/Models/JobModelFunctions.h
index a455d1a5f6f3814a73988cc82147cb2f3997a1b1..02d83ce7af6c23c15ea677d8e8d430da8a3e01d6 100644
--- a/GUI/coregui/Models/JobModelFunctions.h
+++ b/GUI/coregui/Models/JobModelFunctions.h
@@ -15,7 +15,7 @@
 #ifndef JOBMODELFUNCTIONS_H
 #define JOBMODELFUNCTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class InstrumentItem;
 class JobItem;
diff --git a/GUI/coregui/Models/JobQueueData.cpp b/GUI/coregui/Models/JobQueueData.cpp
index 8db1c121b1e2892c7b3a95bc17230d3ac6556253..bd874c9bf3a75cd646ea76d0ab7d07659ce41c9d 100644
--- a/GUI/coregui/Models/JobQueueData.cpp
+++ b/GUI/coregui/Models/JobQueueData.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "JobQueueData.h"
-#include "DomainSimulationBuilder.h"
-#include "GISASSimulation.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "JobWorker.h"
+#include "GUI/coregui/Models/JobQueueData.h"
+#include "GUI/coregui/Models/DomainSimulationBuilder.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/JobWorker.h"
 #include <QThread>
 
 namespace
diff --git a/GUI/coregui/Models/JobQueueData.h b/GUI/coregui/Models/JobQueueData.h
index 9c21ccb6b532bf18c60c0fed008fec0434961511..80bd36d1eb18af867de8d2b147aca5fe5f0ea485 100644
--- a/GUI/coregui/Models/JobQueueData.h
+++ b/GUI/coregui/Models/JobQueueData.h
@@ -15,7 +15,7 @@
 #ifndef JOBQUEUEDATA_H
 #define JOBQUEUEDATA_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QObject>
 
diff --git a/GUI/coregui/Models/JobWorker.cpp b/GUI/coregui/Models/JobWorker.cpp
index e6445426911f03a3342bfdcef94d23265ee738d2..f349558f5567369be6740f61404885d15cc68933 100644
--- a/GUI/coregui/Models/JobWorker.cpp
+++ b/GUI/coregui/Models/JobWorker.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "JobWorker.h"
-#include "GISASSimulation.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/JobWorker.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QDateTime>
 #include <memory>
 
diff --git a/GUI/coregui/Models/JobWorker.h b/GUI/coregui/Models/JobWorker.h
index 989c16af7f8332d7c1eb0b7ca81d2ff45a68faa7..899a109902e74c6c98a1aa7c21f5ffab1ab98269 100644
--- a/GUI/coregui/Models/JobWorker.h
+++ b/GUI/coregui/Models/JobWorker.h
@@ -15,7 +15,7 @@
 #ifndef JOBWORKER_H
 #define JOBWORKER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class Simulation;
diff --git a/GUI/coregui/Models/Lattice2DItems.cpp b/GUI/coregui/Models/Lattice2DItems.cpp
index 4124c96c6ce50b69b8879fb3f3ff4c9d2fe2380b..6fdc6c48f76423b9e098ba1b21f588e51061a32a 100644
--- a/GUI/coregui/Models/Lattice2DItems.cpp
+++ b/GUI/coregui/Models/Lattice2DItems.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Lattice2DItems.h"
-#include "BornAgainNamespace.h"
-#include "Lattice2D.h"
-#include "Units.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/Lattice2DItems.h b/GUI/coregui/Models/Lattice2DItems.h
index 0e231857692fb46380d8f9861b1b10f7365983e5..bcb0c2f69e81a299ab7b9e300458eb099a103235 100644
--- a/GUI/coregui/Models/Lattice2DItems.h
+++ b/GUI/coregui/Models/Lattice2DItems.h
@@ -15,7 +15,7 @@
 #ifndef LATTICE2DITEMS_H
 #define LATTICE2DITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 class Lattice2D;
 
 class BA_CORE_API_ Lattice2DItem : public SessionItem
diff --git a/GUI/coregui/Models/LayerItem.cpp b/GUI/coregui/Models/LayerItem.cpp
index dd58657d183a7283edc19c279b684a84289904de..fe0d64d5803ff39fd9b59c087688b0652d53a07a 100644
--- a/GUI/coregui/Models/LayerItem.cpp
+++ b/GUI/coregui/Models/LayerItem.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "LayerItem.h"
-#include "BornAgainNamespace.h"
-#include "MaterialItemUtils.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/LayerItem.h b/GUI/coregui/Models/LayerItem.h
index 84ef9dd6c967a157332020ed3d0e8d23e6904202..4104f358407a25c760c08d89b330effce7ef6b6c 100644
--- a/GUI/coregui/Models/LayerItem.h
+++ b/GUI/coregui/Models/LayerItem.h
@@ -15,7 +15,7 @@
 #ifndef LAYERITEM_H
 #define LAYERITEM_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class BA_CORE_API_ LayerItem : public SessionGraphicsItem
 {
diff --git a/GUI/coregui/Models/LayerRoughnessItems.cpp b/GUI/coregui/Models/LayerRoughnessItems.cpp
index bf7bf04bfb78329c749f7faff35dfddc6f4c623b..71be7a555db7918b72e7abe18f347893b8a7bddd 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.cpp
+++ b/GUI/coregui/Models/LayerRoughnessItems.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "LayerRoughnessItems.h"
-#include "BornAgainNamespace.h"
+#include "GUI/coregui/Models/LayerRoughnessItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/LayerRoughnessItems.h b/GUI/coregui/Models/LayerRoughnessItems.h
index f1751ea5c252f3565c9663dd62cd8606d64f1fdb..7aae008f4620239b6f213b8ee4d39440918b4fb9 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.h
+++ b/GUI/coregui/Models/LayerRoughnessItems.h
@@ -15,7 +15,7 @@
 #ifndef LAYERROUGHNESSITEMS_H
 #define LAYERROUGHNESSITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ LayerZeroRoughnessItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/MaskItems.cpp b/GUI/coregui/Models/MaskItems.cpp
index 616fd7976b1019518b6eedd54536e1f8f0eb4e32..d211d2a83992529bc55c92847f977a0c1b6defb3 100644
--- a/GUI/coregui/Models/MaskItems.cpp
+++ b/GUI/coregui/Models/MaskItems.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MaskItems.h"
-#include "Ellipse.h"
-#include "GUIHelpers.h"
-#include "InfinitePlane.h"
-#include "Line.h"
-#include "Polygon.h"
-#include "Rectangle.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "Core/Mask/Ellipse.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Mask/InfinitePlane.h"
+#include "Core/Mask/Line.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Mask/Rectangle.h"
 
 MaskContainerItem::MaskContainerItem() : SessionItem(Constants::MaskContainerType)
 {
diff --git a/GUI/coregui/Models/MaskItems.h b/GUI/coregui/Models/MaskItems.h
index 0102b6b3c217b03ca83d3195d4125be32b1abddd..a3498c6f1ded8ab8cf7854f845a5e9e1481d0e3c 100644
--- a/GUI/coregui/Models/MaskItems.h
+++ b/GUI/coregui/Models/MaskItems.h
@@ -15,7 +15,7 @@
 #ifndef MASKITEMS_H
 #define MASKITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class IShape2D;
 
diff --git a/GUI/coregui/Models/MaterialDataItems.cpp b/GUI/coregui/Models/MaterialDataItems.cpp
index 2f3098fe76311add1fb13bed5d55c06c807e2149..3e3ca7cb3770f61a6c523ceee2712dd72eb88f80 100644
--- a/GUI/coregui/Models/MaterialDataItems.cpp
+++ b/GUI/coregui/Models/MaterialDataItems.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MaterialDataItems.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
 
 MaterialDataItem::MaterialDataItem(const QString& modelType) : SessionItem(modelType)
 {
diff --git a/GUI/coregui/Models/MaterialDataItems.h b/GUI/coregui/Models/MaterialDataItems.h
index aadb45b1f3ea488cd40be8fd36c52f0a0315c3b4..e37a13672e47dd5cb7a6f2da0bac7e5fe88372dd 100644
--- a/GUI/coregui/Models/MaterialDataItems.h
+++ b/GUI/coregui/Models/MaterialDataItems.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALDATAITEMS_H
 #define MATERIALDATAITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ MaterialDataItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/MaterialItem.cpp b/GUI/coregui/Models/MaterialItem.cpp
index fa8879ba7e5fca692d14bf04f3e74a46ad49c02c..2032431efaef1b8254a60e3738002bb75a539ae0 100644
--- a/GUI/coregui/Models/MaterialItem.cpp
+++ b/GUI/coregui/Models/MaterialItem.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MaterialItem.h"
-#include "ExternalProperty.h"
-#include "GUIHelpers.h"
-#include "MaterialDataItems.h"
-#include "MaterialFactoryFuncs.h"
-#include "MaterialItemUtils.h"
-#include "SessionItemUtils.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
 
 using SessionItemUtils::GetVectorItem;
 
diff --git a/GUI/coregui/Models/MaterialItem.h b/GUI/coregui/Models/MaterialItem.h
index 538319fda9a57e0ea81073f213dc857a49cb5187..4d3a6cbe1878ad3b283dc4ea8cd52427676b6217 100644
--- a/GUI/coregui/Models/MaterialItem.h
+++ b/GUI/coregui/Models/MaterialItem.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALITEM_H
 #define MATERIALITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class Material;
 
diff --git a/GUI/coregui/Models/MaterialItemContainer.cpp b/GUI/coregui/Models/MaterialItemContainer.cpp
index dacf9be41035e39bfca8ecdfa935f90999fe4f2d..a06a6cb5a833c4f01a50ea1555a1e7dc85b0e84f 100644
--- a/GUI/coregui/Models/MaterialItemContainer.cpp
+++ b/GUI/coregui/Models/MaterialItemContainer.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "MaterialItemContainer.h"
-#include "GUIHelpers.h"
-#include "MaterialItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/MaterialItemContainer.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 const QString MaterialItemContainer::T_MATERIALS = "MaterialVector";
 
diff --git a/GUI/coregui/Models/MaterialItemContainer.h b/GUI/coregui/Models/MaterialItemContainer.h
index 2f3c906da22fd5c105c1ea3860addf43ce8842ab..35ba5764af10623fa1f1d7f2c57304009ab29865 100644
--- a/GUI/coregui/Models/MaterialItemContainer.h
+++ b/GUI/coregui/Models/MaterialItemContainer.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALITEMCONTAINER_H
 #define MATERIALITEMCONTAINER_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class MaterialItem;
 
diff --git a/GUI/coregui/Models/MaterialModel.cpp b/GUI/coregui/Models/MaterialModel.cpp
index 4238da94b94a0d8c53ad80c6559af662a3eed940..1ac239afd9c5f061e4beac8bb18a8dab80902d34 100644
--- a/GUI/coregui/Models/MaterialModel.cpp
+++ b/GUI/coregui/Models/MaterialModel.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MaterialModel.h"
-#include "AppSvc.h"
-#include "GUIHelpers.h"
-#include "MaterialDataItems.h"
-#include "MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
 
 MaterialModel::MaterialModel(QObject* parent) : SessionModel(SessionXML::MaterialModelTag, parent)
 {
diff --git a/GUI/coregui/Models/MaterialModel.h b/GUI/coregui/Models/MaterialModel.h
index 63ff5e834ca7b433aa3662b57d9a3ac38f41be70..6ff3979296fc626c0892f49332ccf9e59f2aa426 100644
--- a/GUI/coregui/Models/MaterialModel.h
+++ b/GUI/coregui/Models/MaterialModel.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALMODEL_H
 #define MATERIALMODEL_H
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 class MaterialItem;
 class ExternalProperty;
diff --git a/GUI/coregui/Models/MaterialPropertyController.cpp b/GUI/coregui/Models/MaterialPropertyController.cpp
index 66f7f7747ae5634a4f022bf9eea86b010cada579..dff5ce8c6f94c915c4f01fe13bec774a190f76c8 100644
--- a/GUI/coregui/Models/MaterialPropertyController.cpp
+++ b/GUI/coregui/Models/MaterialPropertyController.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "MaterialPropertyController.h"
-#include "MaterialItemUtils.h"
-#include "MaterialModel.h"
-#include "ModelPath.h"
-#include "ModelUtils.h"
-#include "SampleModel.h"
+#include "GUI/coregui/Models/MaterialPropertyController.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/SampleModel.h"
 #include <QVector>
 
 MaterialPropertyController::MaterialPropertyController(QObject* parent)
diff --git a/GUI/coregui/Models/MaterialPropertyController.h b/GUI/coregui/Models/MaterialPropertyController.h
index ca2d51bbd21edd07c7836f0b6086ff50ac00b646..143d357963ff784fcd286f8b0743df55e7337737 100644
--- a/GUI/coregui/Models/MaterialPropertyController.h
+++ b/GUI/coregui/Models/MaterialPropertyController.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALPROPERTYCONTROLLER_H
 #define MATERIALPROPERTYCONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class MaterialModel;
diff --git a/GUI/coregui/Models/MesoCrystalItem.cpp b/GUI/coregui/Models/MesoCrystalItem.cpp
index 462008340701800795daf85bf4d0cf65f2b4cfe2..8c798a33a06f1a9e81051500a9b0ea3b19f6aa69 100644
--- a/GUI/coregui/Models/MesoCrystalItem.cpp
+++ b/GUI/coregui/Models/MesoCrystalItem.cpp
@@ -12,22 +12,22 @@
 //
 // ************************************************************************** //
 
-#include "MesoCrystalItem.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "Crystal.h"
-#include "FormFactorItems.h"
-#include "GUIHelpers.h"
-#include "MesoCrystal.h"
-#include "ModelPath.h"
-#include "Particle.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleItem.h"
-#include "SessionItemUtils.h"
-#include "TransformToDomain.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "Core/Particle/Crystal.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 using SessionItemUtils::GetVectorItem;
 
diff --git a/GUI/coregui/Models/MesoCrystalItem.h b/GUI/coregui/Models/MesoCrystalItem.h
index bfafa510598cc38b2915defaa97c76cd20f68a31..5d3b0e944e55a104407b9dec10a438f5828b71dd 100644
--- a/GUI/coregui/Models/MesoCrystalItem.h
+++ b/GUI/coregui/Models/MesoCrystalItem.h
@@ -15,8 +15,8 @@
 #ifndef MESOCRYSTALITEM_H
 #define MESOCRYSTALITEM_H
 
-#include "Lattice.h"
-#include "SessionGraphicsItem.h"
+#include "Core/Lattice/Lattice.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class IFormFactor;
 class IParticle;
diff --git a/GUI/coregui/Models/MinimizerItem.cpp b/GUI/coregui/Models/MinimizerItem.cpp
index 854faacbbcff81b1d9537cc9c28ef6517777fb78..c0fde3a2c17f15b708b7befab7d0b34782a82445 100644
--- a/GUI/coregui/Models/MinimizerItem.cpp
+++ b/GUI/coregui/Models/MinimizerItem.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerItem.h"
-#include "GSLLevenbergMarquardtMinimizer.h"
-#include "GSLMultiMinimizer.h"
-#include "GeneticMinimizer.h"
-#include "MinimizerConstants.h"
-#include "MinimizerItemCatalogue.h"
-#include "Minuit2Minimizer.h"
-#include "ObjectiveMetric.h"
-#include "ObjectiveMetricUtils.h"
-#include "SimAnMinimizer.h"
-#include "TestMinimizer.h"
+#include "GUI/coregui/Models/MinimizerItem.h"
+#include "Fit/RootAdapter/GSLLevenbergMarquardtMinimizer.h"
+#include "Fit/RootAdapter/GSLMultiMinimizer.h"
+#include "Fit/RootAdapter/GeneticMinimizer.h"
+#include "Fit/Minimizer/MinimizerConstants.h"
+#include "GUI/coregui/Models/MinimizerItemCatalogue.h"
+#include "Fit/RootAdapter/Minuit2Minimizer.h"
+#include "Core/Fitting/ObjectiveMetric.h"
+#include "Core/Fitting/ObjectiveMetricUtils.h"
+#include "Fit/RootAdapter/SimAnMinimizer.h"
+#include "Fit/Minimizer/TestMinimizer.h"
 
 MinimizerItem::MinimizerItem(const QString& model_type) : SessionItem(model_type) {}
 
diff --git a/GUI/coregui/Models/MinimizerItem.h b/GUI/coregui/Models/MinimizerItem.h
index d94c49fdd51e64c2098285b104c1a518370d0b15..de35bca8efa294fb749d749da2e1bdc226d173e5 100644
--- a/GUI/coregui/Models/MinimizerItem.h
+++ b/GUI/coregui/Models/MinimizerItem.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERITEM_H
 #define MINIMIZERITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class IMinimizer;
 class ObjectiveMetric;
diff --git a/GUI/coregui/Models/MinimizerItemCatalogue.cpp b/GUI/coregui/Models/MinimizerItemCatalogue.cpp
index 1c2c8290e23552663149f8446367cc1931beb696..c35e7d525a96ef2442ef4998a62b540cac51d58a 100644
--- a/GUI/coregui/Models/MinimizerItemCatalogue.cpp
+++ b/GUI/coregui/Models/MinimizerItemCatalogue.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerItemCatalogue.h"
-#include "GUIHelpers.h"
-#include "MinimizerFactory.h"
+#include "GUI/coregui/Models/MinimizerItemCatalogue.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Fit/Minimizer/MinimizerFactory.h"
 
 //! Returns ComboProperty representing list of algorithms defined for given minimizerType.
 
diff --git a/GUI/coregui/Models/MinimizerItemCatalogue.h b/GUI/coregui/Models/MinimizerItemCatalogue.h
index 02940203ebfdf3ea749c2adbe5739e882a862f73..45c6076f942ca9a4b3087ae02bee0b09fdaddc72 100644
--- a/GUI/coregui/Models/MinimizerItemCatalogue.h
+++ b/GUI/coregui/Models/MinimizerItemCatalogue.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERITEMCATALOGUE_H
 #define MINIMIZERITEMCATALOGUE_H
 
-#include "ComboProperty.h"
+#include "GUI/coregui/Models/ComboProperty.h"
 
 class MinimizerItem;
 
diff --git a/GUI/coregui/Models/ModelMapper.cpp b/GUI/coregui/Models/ModelMapper.cpp
index 96b6caba10908a517f70d9785a52150a1bf6f208..82f2519da51a301b2aef0754c95d3e1bfd215282 100644
--- a/GUI/coregui/Models/ModelMapper.cpp
+++ b/GUI/coregui/Models/ModelMapper.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 ModelMapper::ModelMapper(QObject* parent)
     : QObject(parent), m_active(true), m_model(nullptr), m_item(nullptr)
diff --git a/GUI/coregui/Models/ModelMapper.h b/GUI/coregui/Models/ModelMapper.h
index 96a44a6943bea5efb289c04dfcf621ccdd600956..c5f319229fa5b38c65f9fcbf0da651bd1f24b236 100644
--- a/GUI/coregui/Models/ModelMapper.h
+++ b/GUI/coregui/Models/ModelMapper.h
@@ -15,7 +15,7 @@
 #ifndef MODELMAPPER_H
 #define MODELMAPPER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QModelIndex>
 #include <functional>
 
diff --git a/GUI/coregui/Models/ModelPath.cpp b/GUI/coregui/Models/ModelPath.cpp
index c4450c14ca180190a2824431b177107e0aaf12a9..95e37c3f5e3ec02a6de971ea1a9c48164808df6c 100644
--- a/GUI/coregui/Models/ModelPath.cpp
+++ b/GUI/coregui/Models/ModelPath.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ModelPath.h"
-#include "JobItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 QString ModelPath::getPathFromIndex(const QModelIndex& index)
 {
diff --git a/GUI/coregui/Models/ModelPath.h b/GUI/coregui/Models/ModelPath.h
index 77cc74437e210dcf19c183f5866dff9245266d6b..04287de210a0f2f4dc360754cc1856a016604081 100644
--- a/GUI/coregui/Models/ModelPath.h
+++ b/GUI/coregui/Models/ModelPath.h
@@ -15,8 +15,8 @@
 #ifndef MODELPATH_H
 #define MODELPATH_H
 
-#include "ParameterTranslators.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <vector>
 
diff --git a/GUI/coregui/Models/ModelUtils.cpp b/GUI/coregui/Models/ModelUtils.cpp
index c8a091d4445ea90cd5705df24a71a1b4f984851c..b53d1e5227de41d58b69c112a16582021a003373 100644
--- a/GUI/coregui/Models/ModelUtils.cpp
+++ b/GUI/coregui/Models/ModelUtils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ModelUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAbstractItemModel>
 #include <QModelIndex>
 
diff --git a/GUI/coregui/Models/ModelUtils.h b/GUI/coregui/Models/ModelUtils.h
index c93cad1e513a22bb5d441a64bcc8acdec1d02322..29e2a36164bebb89eecb946a0e26a1444dd20c4e 100644
--- a/GUI/coregui/Models/ModelUtils.h
+++ b/GUI/coregui/Models/ModelUtils.h
@@ -15,7 +15,7 @@
 #ifndef MODELUTILS_H
 #define MODELUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <functional>
 
diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp
index 07807c60e22dd1df469c1accf2a46aa210fbf788..db73efec8cfee0fa0d8c779f441630047ed36f42 100644
--- a/GUI/coregui/Models/MultiLayerItem.cpp
+++ b/GUI/coregui/Models/MultiLayerItem.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayerItem.h"
-#include "BornAgainNamespace.h"
-#include "LayerItem.h"
-#include "ParameterTranslators.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/MultiLayerItem.h b/GUI/coregui/Models/MultiLayerItem.h
index 5bc01cc56e3a89c972aa72bf9df126898f3284bf..b9a4e21784d61b623d1c421a68ffc54d11a6b75e 100644
--- a/GUI/coregui/Models/MultiLayerItem.h
+++ b/GUI/coregui/Models/MultiLayerItem.h
@@ -15,7 +15,7 @@
 #ifndef MULTILAYERITEM_H
 #define MULTILAYERITEM_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class BA_CORE_API_ MultiLayerItem : public SessionGraphicsItem
 {
diff --git a/GUI/coregui/Models/ParameterTranslators.cpp b/GUI/coregui/Models/ParameterTranslators.cpp
index 54d019255157ba41e446ae09ed38ec1dcee2fb11..eb4f80d13a3c9f52bc41796b07c38b81746621cf 100644
--- a/GUI/coregui/Models/ParameterTranslators.cpp
+++ b/GUI/coregui/Models/ParameterTranslators.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ParameterTranslators.h"
-#include "BornAgainNamespace.h"
-#include "GUIHelpers.h"
-#include "MesoCrystalItem.h"
-#include "ParticleItem.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ParameterTreeItems.cpp b/GUI/coregui/Models/ParameterTreeItems.cpp
index f6745eaf82d0e1069571f860b8d01b96caa24b9a..b6520a3b47c91280e5870e581d88c8a19b0e8527 100644
--- a/GUI/coregui/Models/ParameterTreeItems.cpp
+++ b/GUI/coregui/Models/ParameterTreeItems.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ParameterTreeItems.h"
-#include "FitParameterHelper.h"
-#include "ModelPath.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 // ----------------------------------------------------------------------------
 
diff --git a/GUI/coregui/Models/ParameterTreeItems.h b/GUI/coregui/Models/ParameterTreeItems.h
index 184afb06f0caf8decc729ea6465a731efd7e3ea4..3e1bde85d29e442b3bf0e9b1ed96ed4cd22c4f4d 100644
--- a/GUI/coregui/Models/ParameterTreeItems.h
+++ b/GUI/coregui/Models/ParameterTreeItems.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERTREEITEMS_H
 #define PARAMETERTREEITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 //! ParameterTreeItems is a collection of items necessary to form a tuning tree for
 //! real time widget.
diff --git a/GUI/coregui/Models/ParameterTreeUtils.cpp b/GUI/coregui/Models/ParameterTreeUtils.cpp
index 175b7f35d97ecc40d6d9622dec41282ac9e5da59..128c54fd227ded08d59d56393efd387fbaf83621 100644
--- a/GUI/coregui/Models/ParameterTreeUtils.cpp
+++ b/GUI/coregui/Models/ParameterTreeUtils.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "ParameterTreeUtils.h"
-#include "FitParameterHelper.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "JobItem.h"
-#include "ModelPath.h"
-#include "MultiLayerItem.h"
-#include "ParameterTreeItems.h"
-#include "SampleModel.h"
+#include "GUI/coregui/Models/ParameterTreeUtils.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/SampleModel.h"
 #include <QStack>
 
 namespace
diff --git a/GUI/coregui/Models/ParameterTreeUtils.h b/GUI/coregui/Models/ParameterTreeUtils.h
index 59de91a9ac1f41c8ffaab113f8f1399350342c15..b44cf8f0e04e3b036a9a0551d85ddeec225d01c3 100644
--- a/GUI/coregui/Models/ParameterTreeUtils.h
+++ b/GUI/coregui/Models/ParameterTreeUtils.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERTREEUTILS_H
 #define PARAMETERTREEUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QPair>
 #include <QString>
 #include <functional>
diff --git a/GUI/coregui/Models/ParameterTuningModel.cpp b/GUI/coregui/Models/ParameterTuningModel.cpp
index db2133968bb99d3fa558a990258abacbbcc0a3f1..9f76be03feea9067152fd611bcd8b3dca7138482 100644
--- a/GUI/coregui/Models/ParameterTuningModel.cpp
+++ b/GUI/coregui/Models/ParameterTuningModel.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ParameterTuningModel.h"
-#include "FitParameterHelper.h"
-#include "ParameterTreeItems.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ParameterTuningModel.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QMimeData>
 
 ParameterTuningModel::ParameterTuningModel(QObject* parent) : FilterPropertyProxy(2, parent) {}
diff --git a/GUI/coregui/Models/ParameterTuningModel.h b/GUI/coregui/Models/ParameterTuningModel.h
index f3315fac4c3e11defc8bab0c33019f9d05f8507e..cca693bdd1407e614259a7569f95748009f208ea 100644
--- a/GUI/coregui/Models/ParameterTuningModel.h
+++ b/GUI/coregui/Models/ParameterTuningModel.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERTUNINGMODEL_H
 #define PARAMETERTUNINGMODEL_H
 
-#include "FilterPropertyProxy.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
 
 class ParameterItem;
 
diff --git a/GUI/coregui/Models/ParticleCompositionItem.cpp b/GUI/coregui/Models/ParticleCompositionItem.cpp
index 2d961d64e4238c289b8fb9897186ab97325665a8..d0d24578aea1e7a368cf23aa38f2fba68005f7d6 100644
--- a/GUI/coregui/Models/ParticleCompositionItem.cpp
+++ b/GUI/coregui/Models/ParticleCompositionItem.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "ParticleCompositionItem.h"
-#include "MesoCrystal.h"
-#include "MesoCrystalItem.h"
-#include "ModelPath.h"
-#include "Particle.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleItem.h"
-#include "SessionItemUtils.h"
-#include "TransformToDomain.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ParticleCompositionItem.h b/GUI/coregui/Models/ParticleCompositionItem.h
index e51f2a78fe38ed3f358a53e57336563cd732ea3e..c8a0c95cfe5f3aaf49bbcac7d35f6a4692a3eb9c 100644
--- a/GUI/coregui/Models/ParticleCompositionItem.h
+++ b/GUI/coregui/Models/ParticleCompositionItem.h
@@ -15,8 +15,8 @@
 #ifndef PARTICLECOMPOSITIONITEM_H
 #define PARTICLECOMPOSITIONITEM_H
 
-#include "ParticleComposition.h"
-#include "SessionGraphicsItem.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class BA_CORE_API_ ParticleCompositionItem : public SessionGraphicsItem
 {
diff --git a/GUI/coregui/Models/ParticleCoreShellItem.cpp b/GUI/coregui/Models/ParticleCoreShellItem.cpp
index 59ebdb47f2f3d968b91e9925e1c3c3658b4463ed..5186722740be14577bfcb5dfe2f3842d0a929d81 100644
--- a/GUI/coregui/Models/ParticleCoreShellItem.cpp
+++ b/GUI/coregui/Models/ParticleCoreShellItem.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ParticleCoreShellItem.h"
-#include "GUIHelpers.h"
-#include "ModelPath.h"
-#include "Particle.h"
-#include "ParticleCoreShell.h"
-#include "ParticleItem.h"
-#include "SessionItemUtils.h"
-#include "TransformToDomain.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ParticleCoreShellItem.h b/GUI/coregui/Models/ParticleCoreShellItem.h
index 00cab30f884fb85ccb14bfabfe048dd0f58cf775..0810bf79fd7f8754470e59e182e054e02cfee861 100644
--- a/GUI/coregui/Models/ParticleCoreShellItem.h
+++ b/GUI/coregui/Models/ParticleCoreShellItem.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLECORESHELLITEM_H
 #define PARTICLECORESHELLITEM_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class ParticleCoreShell;
 
diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp
index ecafa1fdce95f54ff207ad2b4be08501cb1bca13..efb4f0b1544af3510781358c33bb4522e37c2f3a 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.cpp
+++ b/GUI/coregui/Models/ParticleDistributionItem.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "ParticleDistributionItem.h"
-#include "ComboProperty.h"
-#include "DistributionItems.h"
-#include "Distributions.h"
-#include "GUIHelpers.h"
-#include "ParameterTreeUtils.h"
-#include "ParameterUtils.h"
-#include "ParticleItem.h"
-#include "RealLimitsItems.h"
-#include "TransformFromDomain.h"
-#include "TransformToDomain.h"
-#include "Units.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DistributionItems.h"
+#include "Core/Parametrization/Distributions.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/ParameterTreeUtils.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/ParticleDistributionItem.h b/GUI/coregui/Models/ParticleDistributionItem.h
index 4c2db027f6bcf714c05edf82bb9d307fa23d6a09..15721cefe4e57e3bcf5bf42a9629e40b7a45eb60 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.h
+++ b/GUI/coregui/Models/ParticleDistributionItem.h
@@ -15,8 +15,8 @@
 #ifndef PARTICLEDISTRIBUTIONITEM_H
 #define PARTICLEDISTRIBUTIONITEM_H
 
-#include "ParticleDistribution.h"
-#include "SessionGraphicsItem.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 #include <string>
 #include <vector>
 
diff --git a/GUI/coregui/Models/ParticleItem.cpp b/GUI/coregui/Models/ParticleItem.cpp
index 026520300b18cdd29d2553542c7f0dc12e948ffb..120dbcce115fe5b913797de8f529fce8a2367865 100644
--- a/GUI/coregui/Models/ParticleItem.cpp
+++ b/GUI/coregui/Models/ParticleItem.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "ParticleItem.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorItems.h"
-#include "MaterialItemUtils.h"
-#include "ModelPath.h"
-#include "Particle.h"
-#include "ParticleCoreShellItem.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
-#include "TransformToDomain.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 using SessionItemUtils::SetVectorItem;
 
diff --git a/GUI/coregui/Models/ParticleItem.h b/GUI/coregui/Models/ParticleItem.h
index 26aaf1402a28f398ff345de2fc20f029ec42e13e..99d2d0dcd9486755507def2eb4869fc3abf0610c 100644
--- a/GUI/coregui/Models/ParticleItem.h
+++ b/GUI/coregui/Models/ParticleItem.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLEITEM_H
 #define PARTICLEITEM_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class Particle;
 
diff --git a/GUI/coregui/Models/ParticleLayoutItem.cpp b/GUI/coregui/Models/ParticleLayoutItem.cpp
index 28d20e6df45911a29ca9b5c4fe838f524e8d48e8..045de1d96f24ae913d85acc58401e77c4f5f4ca4 100644
--- a/GUI/coregui/Models/ParticleLayoutItem.cpp
+++ b/GUI/coregui/Models/ParticleLayoutItem.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParticleLayoutItem.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "InterferenceFunctionItems.h"
-#include "Lattice2DItems.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
 #include <QDebug>
 
 namespace
diff --git a/GUI/coregui/Models/ParticleLayoutItem.h b/GUI/coregui/Models/ParticleLayoutItem.h
index ffcc62b83108883051d926611a317f0c202da083..c5bd65613751ff74c4adc1dfea39f9dc1a1a337e 100644
--- a/GUI/coregui/Models/ParticleLayoutItem.h
+++ b/GUI/coregui/Models/ParticleLayoutItem.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLELAYOUTITEM_H
 #define PARTICLELAYOUTITEM_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class BA_CORE_API_ ParticleLayoutItem : public SessionGraphicsItem
 {
diff --git a/GUI/coregui/Models/PointwiseAxisItem.cpp b/GUI/coregui/Models/PointwiseAxisItem.cpp
index 06f9a7d4f0db7dc16790199621e7fba5b66e09f4..75488eec1cf61403646b7dc041beb70c61b528c9 100644
--- a/GUI/coregui/Models/PointwiseAxisItem.cpp
+++ b/GUI/coregui/Models/PointwiseAxisItem.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "PointwiseAxisItem.h"
-#include "IUnitConverter.h"
-#include "InstrumentItems.h"
-#include "IntensityDataIOFactory.h"
-#include "OutputData.h"
-#include "PointwiseAxis.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "Core/Instrument/IUnitConverter.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Binning/PointwiseAxis.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/PointwiseAxisItem.h b/GUI/coregui/Models/PointwiseAxisItem.h
index b662092845dfc4cf92faddacbf328c371d9defd9..8f73f2bf9f9881d5a7afd023a05f972f35b37c38 100644
--- a/GUI/coregui/Models/PointwiseAxisItem.h
+++ b/GUI/coregui/Models/PointwiseAxisItem.h
@@ -15,8 +15,8 @@
 #ifndef POINTWISEAXISITEM_H
 #define POINTWISEAXISITEM_H
 
-#include "AxesItems.h"
-#include "SaveLoadInterface.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/mainwindow/SaveLoadInterface.h"
 
 class PointwiseAxis;
 class SpecularInstrumentItem;
diff --git a/GUI/coregui/Models/ProjectionItems.cpp b/GUI/coregui/Models/ProjectionItems.cpp
index 54c304cc6e8826cc151c9ac7d07f1cf03d5c14b4..60124a698a53ea72f0fc7e40daba17e598b4e575 100644
--- a/GUI/coregui/Models/ProjectionItems.cpp
+++ b/GUI/coregui/Models/ProjectionItems.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionItems.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
 
 ProjectionContainerItem::ProjectionContainerItem() : SessionItem(Constants::ProjectionContainerType)
 {
diff --git a/GUI/coregui/Models/ProjectionItems.h b/GUI/coregui/Models/ProjectionItems.h
index 07e8c54b21f90861fbf29d810dc91fdabfad70da..2a5685113936a057edc1c9d20d5d453fc5b35bfc 100644
--- a/GUI/coregui/Models/ProjectionItems.h
+++ b/GUI/coregui/Models/ProjectionItems.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTIONITEMS_H
 #define PROJECTIONITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 //! A container to hold ProjectionItems, intended to store projections of color map on X, Y axes.
 
diff --git a/GUI/coregui/Models/PropertyItem.cpp b/GUI/coregui/Models/PropertyItem.cpp
index 2185dcd29e1d4f353296d836ba50e5c669a54799..afc19183b2ad7332884523900cf27e789c8a2670 100644
--- a/GUI/coregui/Models/PropertyItem.cpp
+++ b/GUI/coregui/Models/PropertyItem.cpp
@@ -12,6 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "PropertyItem.h"
+#include "GUI/coregui/Models/PropertyItem.h"
 
 PropertyItem::PropertyItem() : SessionItem(Constants::PropertyType) {}
diff --git a/GUI/coregui/Models/PropertyItem.h b/GUI/coregui/Models/PropertyItem.h
index e5474883dcbf75413de3fae879974a5ff24f46fb..36788676416db21a5bc28d3772b7d8ee2f742acf 100644
--- a/GUI/coregui/Models/PropertyItem.h
+++ b/GUI/coregui/Models/PropertyItem.h
@@ -15,7 +15,7 @@
 #ifndef PROPERTYITEM_H
 #define PROPERTYITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ PropertyItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/ProxyModelStrategy.cpp b/GUI/coregui/Models/ProxyModelStrategy.cpp
index c495c7f2040dd0fd80efca33b8678112eb3d8dbe..824829c7143095f831fa178b9e020b4d835e96a6 100644
--- a/GUI/coregui/Models/ProxyModelStrategy.cpp
+++ b/GUI/coregui/Models/ProxyModelStrategy.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ProxyModelStrategy.h"
-#include "ComponentProxyModel.h"
-#include "ModelUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ProxyModelStrategy.h"
+#include "GUI/coregui/Models/ComponentProxyModel.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 ProxyModelStrategy::ProxyModelStrategy() : m_source(nullptr), m_proxy(nullptr) {}
 
diff --git a/GUI/coregui/Models/ProxyModelStrategy.h b/GUI/coregui/Models/ProxyModelStrategy.h
index 015628c426013aecbd7e66348dd345d6c8460cfe..c9b8c530c2f757693a289eb51962899b28e0bbe9 100644
--- a/GUI/coregui/Models/ProxyModelStrategy.h
+++ b/GUI/coregui/Models/ProxyModelStrategy.h
@@ -15,7 +15,7 @@
 #ifndef PROXYMODELSTRATEGY_H
 #define PROXYMODELSTRATEGY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QPersistentModelIndex>
 
 class SessionModel;
diff --git a/GUI/coregui/Models/RealDataItem.cpp b/GUI/coregui/Models/RealDataItem.cpp
index 6bec7dd48b2cbd923f251d3c36f9938f90d8fb9f..f2edd8507e59213e3c180a3849cdab57f7681e93 100644
--- a/GUI/coregui/Models/RealDataItem.cpp
+++ b/GUI/coregui/Models/RealDataItem.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "RealDataItem.h"
-#include "GUIHelpers.h"
-#include "ImportDataInfo.h"
-#include "InstrumentItems.h"
-#include "IntensityDataItem.h"
-#include "ItemFileNameUtils.h"
-#include "JobItemUtils.h"
-#include "SessionModel.h"
-#include "SpecularDataItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
 
 const QString RealDataItem::P_INSTRUMENT_ID = "Instrument Id";
 const QString RealDataItem::P_INSTRUMENT_NAME = "Instrument";
diff --git a/GUI/coregui/Models/RealDataItem.h b/GUI/coregui/Models/RealDataItem.h
index f5fa083fc1fd957b408ab0125e2bd770dc3671b1..650447187f1e0511d2025a2e74666464e078b424 100644
--- a/GUI/coregui/Models/RealDataItem.h
+++ b/GUI/coregui/Models/RealDataItem.h
@@ -15,7 +15,7 @@
 #ifndef REALDATAITEM_H
 #define REALDATAITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class DataItem;
 class InstrumentItem;
diff --git a/GUI/coregui/Models/RealDataModel.cpp b/GUI/coregui/Models/RealDataModel.cpp
index 61c2009dfc7d21d763210ee824feac2ce8409cb7..d4d62b951d5ca0ff1bf87216c6a57fb8bcc5891a 100644
--- a/GUI/coregui/Models/RealDataModel.cpp
+++ b/GUI/coregui/Models/RealDataModel.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "RealDataModel.h"
-#include "DataItem.h"
-#include "RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
 
 RealDataModel::RealDataModel(QObject* parent) : SessionModel(SessionXML::RealDataModelTag, parent)
 {
diff --git a/GUI/coregui/Models/RealDataModel.h b/GUI/coregui/Models/RealDataModel.h
index 7e3f314ba9f712501c4aa1bbe460c6fe0cf0c6b7..77a70dec95915269538a95ae6fce928a3e68ae15 100644
--- a/GUI/coregui/Models/RealDataModel.h
+++ b/GUI/coregui/Models/RealDataModel.h
@@ -15,7 +15,7 @@
 #ifndef REALDATAMODEL_H
 #define REALDATAMODEL_H
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 //! The RealDataModel class is a model to store all imported RealDataItem's.
 
diff --git a/GUI/coregui/Models/RealLimitsItems.cpp b/GUI/coregui/Models/RealLimitsItems.cpp
index 8ffd9e43e5e97691b0eb4aa014d37c16dbc29ced..aad7b25cd5e1b06a9bdad3fa80d3ad71fdde120f 100644
--- a/GUI/coregui/Models/RealLimitsItems.cpp
+++ b/GUI/coregui/Models/RealLimitsItems.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RealLimitsItems.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/RealLimitsItems.h b/GUI/coregui/Models/RealLimitsItems.h
index 581cc7dd7b87409eb9791b6a6b91ba5d1626b2e4..4071f21cf21f97531f6aed6f3ff18dbf0e11d51d 100644
--- a/GUI/coregui/Models/RealLimitsItems.h
+++ b/GUI/coregui/Models/RealLimitsItems.h
@@ -15,8 +15,8 @@
 #ifndef REALLIMITSITEMS_H
 #define REALLIMITSITEMS_H
 
-#include "RealLimits.h"
-#include "SessionItem.h"
+#include "Fit/Tools/RealLimits.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ RealLimitsItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/RectangularDetectorItem.cpp b/GUI/coregui/Models/RectangularDetectorItem.cpp
index ddbba4f8417c83ba3290a1851aed31c049ba33ff..7b9d12864d9e94bdc8f5e989ffcf7c4cb144d1c3 100644
--- a/GUI/coregui/Models/RectangularDetectorItem.cpp
+++ b/GUI/coregui/Models/RectangularDetectorItem.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "RectangularDetectorItem.h"
-#include "AxesItems.h"
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "RectangularDetector.h"
-#include "ResolutionFunctionItems.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "GUI/coregui/Models/ResolutionFunctionItems.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/RectangularDetectorItem.h b/GUI/coregui/Models/RectangularDetectorItem.h
index 69f5e56e3ba6a7bb63e3f37af9d7b51c05873191..56001f4ae0ca81f46f63bb0602165d40d6231e75 100644
--- a/GUI/coregui/Models/RectangularDetectorItem.h
+++ b/GUI/coregui/Models/RectangularDetectorItem.h
@@ -15,8 +15,8 @@
 #ifndef RECTANGULARDETECTORITEM_H
 #define RECTANGULARDETECTORITEM_H
 
-#include "DetectorItems.h"
-#include "Vectors3D.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "Core/Vector/Vectors3D.h"
 
 class BA_CORE_API_ RectangularDetectorItem : public DetectorItem
 {
diff --git a/GUI/coregui/Models/ResolutionFunctionItems.cpp b/GUI/coregui/Models/ResolutionFunctionItems.cpp
index 8044f61981c6f61dab02a613beaedfa1f64d43a3..db61d0b5ee863b0d469473284cbd3be8653ec371 100644
--- a/GUI/coregui/Models/ResolutionFunctionItems.cpp
+++ b/GUI/coregui/Models/ResolutionFunctionItems.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ResolutionFunctionItems.h"
-#include "BornAgainNamespace.h"
-#include "ResolutionFunction2DGaussian.h"
+#include "GUI/coregui/Models/ResolutionFunctionItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
 
 ResolutionFunctionItem::ResolutionFunctionItem(const QString& name) : SessionItem(name) {}
 
diff --git a/GUI/coregui/Models/ResolutionFunctionItems.h b/GUI/coregui/Models/ResolutionFunctionItems.h
index 124997fe0001271ea1d762fe69ce807e78ebe644..d68eb6d565802670b72d4d48c439c83de72bb64d 100644
--- a/GUI/coregui/Models/ResolutionFunctionItems.h
+++ b/GUI/coregui/Models/ResolutionFunctionItems.h
@@ -15,7 +15,7 @@
 #ifndef RESOLUTIONFUNCTIONITEMS_H
 #define RESOLUTIONFUNCTIONITEMS_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <memory>
 
 class IResolutionFunction2D;
diff --git a/GUI/coregui/Models/RotationItems.cpp b/GUI/coregui/Models/RotationItems.cpp
index 11b86bc7d24a35ff7d2cf9feca5d5b64ea2a5be5..285ab558d273b937d0e89e1efaa5e1920cae6fe5 100644
--- a/GUI/coregui/Models/RotationItems.cpp
+++ b/GUI/coregui/Models/RotationItems.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "RotationItems.h"
-#include "Rotations.h"
-#include "Units.h"
+#include "GUI/coregui/Models/RotationItems.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Parametrization/Units.h"
 
 // ----------------------------------------------------------------------------
 
diff --git a/GUI/coregui/Models/RotationItems.h b/GUI/coregui/Models/RotationItems.h
index 64bf5e4f83f46284b2c60ff5cba46f5c10dfeda8..67dfe434f562bba486ab9275aec1ba9d67adad68 100644
--- a/GUI/coregui/Models/RotationItems.h
+++ b/GUI/coregui/Models/RotationItems.h
@@ -15,8 +15,8 @@
 #ifndef ROTATIONITEMS_H
 #define ROTATIONITEMS_H
 
-#include "SessionItem.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "Wrap/WinDllMacros.h"
 
 class IRotation;
 
diff --git a/GUI/coregui/Models/SampleModel.cpp b/GUI/coregui/Models/SampleModel.cpp
index f506ef39db385cd422f455ddf0bae91910119fdb..23c5b672e6a6abbe6ef421cfb7330b8e5cf42c8c 100644
--- a/GUI/coregui/Models/SampleModel.cpp
+++ b/GUI/coregui/Models/SampleModel.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SampleModel.h"
-#include "MultiLayerItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
 
 SampleModel::SampleModel(QObject* parent) : SessionModel(SessionXML::SampleModelTag, parent)
 {
diff --git a/GUI/coregui/Models/SampleModel.h b/GUI/coregui/Models/SampleModel.h
index 60079483509f4ff4be977db82116e3e94d2f36f3..c72a39ef480e239c381738b67f9d1933aa86f807 100644
--- a/GUI/coregui/Models/SampleModel.h
+++ b/GUI/coregui/Models/SampleModel.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEMODEL_H
 #define SAMPLEMODEL_H
 
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 class MultiLayerItem;
 
diff --git a/GUI/coregui/Models/SampleValidator.cpp b/GUI/coregui/Models/SampleValidator.cpp
index e64ecfa601652f5cca3bf2edc88431834b1321bf..280f9b8ecfc5dfe0395cdd2cebfec417c8171e8e 100644
--- a/GUI/coregui/Models/SampleValidator.cpp
+++ b/GUI/coregui/Models/SampleValidator.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SampleValidator.h"
-#include "LayerItem.h"
-#include "MultiLayerItem.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleLayoutItem.h"
+#include "GUI/coregui/Models/SampleValidator.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
 
 SampleValidator::SampleValidator() : m_valid_sample(true) {}
 
diff --git a/GUI/coregui/Models/SessionDecorationModel.cpp b/GUI/coregui/Models/SessionDecorationModel.cpp
index 8bbe582988adfd82cecf9febd60d5fc9297dae12..249b4a49fdf30bce1b3fc7d36ac332a648b1b862 100644
--- a/GUI/coregui/Models/SessionDecorationModel.cpp
+++ b/GUI/coregui/Models/SessionDecorationModel.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SessionDecorationModel.h"
-#include "MaterialItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/SessionDecorationModel.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QColor>
 #include <QIcon>
 #include <QPixmap>
diff --git a/GUI/coregui/Models/SessionDecorationModel.h b/GUI/coregui/Models/SessionDecorationModel.h
index 78ca7383bb2ed6dc54bcacec4ee2952de22617d9..e43b77ed709c3eb60422dcf517aa4b383a3cee4b 100644
--- a/GUI/coregui/Models/SessionDecorationModel.h
+++ b/GUI/coregui/Models/SessionDecorationModel.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONDECORATIONMODEL_H
 #define SESSIONDECORATIONMODEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QIdentityProxyModel>
 
 class SessionModel;
diff --git a/GUI/coregui/Models/SessionFlags.h b/GUI/coregui/Models/SessionFlags.h
index f2b5a033b52696503ea7d4978564ecbf05ee7754..7898124ea81ccef4c7da7237eadef76462d218d4 100644
--- a/GUI/coregui/Models/SessionFlags.h
+++ b/GUI/coregui/Models/SessionFlags.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONFLAGS_H
 #define SESSIONFLAGS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <qnamespace.h>
 
 //! Collection of flags for SessionModel and SessionItem.
diff --git a/GUI/coregui/Models/SessionGraphicsItem.cpp b/GUI/coregui/Models/SessionGraphicsItem.cpp
index e50b15e23c0f3f5ee9a5ff8a4a4141b06de0166e..43f01961893977e69479d58c188ac026d4313753 100644
--- a/GUI/coregui/Models/SessionGraphicsItem.cpp
+++ b/GUI/coregui/Models/SessionGraphicsItem.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 const QString SessionGraphicsItem::P_XPOS = "xpos";
 const QString SessionGraphicsItem::P_YPOS = "ypos";
diff --git a/GUI/coregui/Models/SessionGraphicsItem.h b/GUI/coregui/Models/SessionGraphicsItem.h
index eb72d8e7b1036ecb6c7a92d5279e0862aacb3618..4bfa3f243d3e72d648a6001c9e82b396f00608a9 100644
--- a/GUI/coregui/Models/SessionGraphicsItem.h
+++ b/GUI/coregui/Models/SessionGraphicsItem.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONGRAPHICSITEM_H
 #define SESSIONGRAPHICSITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 class BA_CORE_API_ SessionGraphicsItem : public SessionItem
 {
diff --git a/GUI/coregui/Models/SessionItem.cpp b/GUI/coregui/Models/SessionItem.cpp
index d1e9f7b1249b2e7b679ed50e74f30f4e5565a92e..5d45591e1c26c59b74c274debb90c96dd5a23d4f 100644
--- a/GUI/coregui/Models/SessionItem.cpp
+++ b/GUI/coregui/Models/SessionItem.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "ItemFactory.h"
-#include "ParameterTranslators.h"
-#include "SessionItemData.h"
-#include "SessionItemTags.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/Models/ParameterTranslators.h"
+#include "GUI/coregui/Models/SessionItemData.h"
+#include "GUI/coregui/Models/SessionItemTags.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 const QString SessionItem::P_NAME = "Name";
 
diff --git a/GUI/coregui/Models/SessionItem.h b/GUI/coregui/Models/SessionItem.h
index 3a86bef96f0a8d2001d84d7452025f3abd251586..f68abf913fa523158036a4cbdf3076da6cdb8c60 100644
--- a/GUI/coregui/Models/SessionItem.h
+++ b/GUI/coregui/Models/SessionItem.h
@@ -15,9 +15,9 @@
 #ifndef SESSIONITEM_H
 #define SESSIONITEM_H
 
-#include "ModelMapper.h"
-#include "RealLimits.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/ModelMapper.h"
+#include "Fit/Tools/RealLimits.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QStringList>
 #include <memory>
 
diff --git a/GUI/coregui/Models/SessionItemData.cpp b/GUI/coregui/Models/SessionItemData.cpp
index 83fa64853fa83d964dbe94ab89f65f923d3e5428..bb61bec2aaa7ccdd23a3150992bf6e5ec5bfc0e4 100644
--- a/GUI/coregui/Models/SessionItemData.cpp
+++ b/GUI/coregui/Models/SessionItemData.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SessionItemData.h"
-#include "SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionItemData.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
 
 SessionItemData::ItemData::ItemData(int r, const QVariant& v) : role(r), data(v) {}
 
diff --git a/GUI/coregui/Models/SessionItemData.h b/GUI/coregui/Models/SessionItemData.h
index 19f7681486f3eb19218e71bb1df39b40c75c5fd1..67854fce1e685b409a9a0c11f9d56c6d22dd370b 100644
--- a/GUI/coregui/Models/SessionItemData.h
+++ b/GUI/coregui/Models/SessionItemData.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONITEMDATA_H
 #define SESSIONITEMDATA_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QVariant>
 #include <QVector>
 
diff --git a/GUI/coregui/Models/SessionItemTags.cpp b/GUI/coregui/Models/SessionItemTags.cpp
index dadca9dfc99802aad96403c201b0039a6c557745..c7fd31285484ca0e250f5b213f2f9b29cc234f75 100644
--- a/GUI/coregui/Models/SessionItemTags.cpp
+++ b/GUI/coregui/Models/SessionItemTags.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SessionItemTags.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/Models/SessionItemTags.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 
 SessionItemTags::TagInfo::TagInfo() : min(0), max(-1), childCount(0) {}
 
diff --git a/GUI/coregui/Models/SessionItemTags.h b/GUI/coregui/Models/SessionItemTags.h
index 2beed13a6856214c67d66a26c5619c17890984d2..6c4c1c5095a61012495d1eaa6d603b8bf56b8965 100644
--- a/GUI/coregui/Models/SessionItemTags.h
+++ b/GUI/coregui/Models/SessionItemTags.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONITEMTAGS_H
 #define SESSIONITEMTAGS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <QStringList>
 #include <QVector>
diff --git a/GUI/coregui/Models/SessionItemUtils.cpp b/GUI/coregui/Models/SessionItemUtils.cpp
index 3023a398e8eb4f035f237e11e8e3ed366c4c3ce6..64ba19a12a6a57077aaf6ccb44ebac70db5189ac 100644
--- a/GUI/coregui/Models/SessionItemUtils.cpp
+++ b/GUI/coregui/Models/SessionItemUtils.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "SessionItemUtils.h"
-#include "ExternalProperty.h"
-#include "GUIHelpers.h"
-#include "GroupInfoCatalogue.h"
-#include "MaterialItem.h"
-#include "SessionGraphicsItem.h"
-#include "SessionItem.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupInfoCatalogue.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/VectorItem.h"
 #include <QColor>
 #include <QIcon>
 #include <QPixmap>
diff --git a/GUI/coregui/Models/SessionItemUtils.h b/GUI/coregui/Models/SessionItemUtils.h
index 8f86e3065eaf6059113d4b90a11309f423eb48c8..7d12203a6ffbdadcf8f97b50736b05bbfa813c5a 100644
--- a/GUI/coregui/Models/SessionItemUtils.h
+++ b/GUI/coregui/Models/SessionItemUtils.h
@@ -15,8 +15,8 @@
 #ifndef SESSIONITEMUTILS_H
 #define SESSIONITEMUTILS_H
 
-#include "Vectors3D.h"
-#include "WinDllMacros.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <QVariant>
 
diff --git a/GUI/coregui/Models/SessionModel.cpp b/GUI/coregui/Models/SessionModel.cpp
index 2abc91f369c1a37d29a5bfa27baaaaf9eb3fdd92..91cfb2478403710797ca42b4763a590086fbd890 100644
--- a/GUI/coregui/Models/SessionModel.cpp
+++ b/GUI/coregui/Models/SessionModel.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SessionModel.h"
-#include "GUIHelpers.h"
-#include "ItemFactory.h"
-#include "SessionItemTags.h"
-#include "SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/Models/SessionItemTags.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
 #include <QFile>
 #include <QMimeData>
 #include <QtCore/QXmlStreamWriter>
diff --git a/GUI/coregui/Models/SessionModel.h b/GUI/coregui/Models/SessionModel.h
index 5bde96ad06de491f96b51ec3970aea913a405754..1920e23a67cd5a4379d79b96b2f7d99d0719fb6e 100644
--- a/GUI/coregui/Models/SessionModel.h
+++ b/GUI/coregui/Models/SessionModel.h
@@ -15,9 +15,9 @@
 #ifndef SESSIONMODEL_H
 #define SESSIONMODEL_H
 
-#include "SessionFlags.h"
-#include "SessionItem.h"
-#include "SessionXML.h"
+#include "GUI/coregui/Models/SessionFlags.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionXML.h"
 #include <QStringList>
 
 class BA_CORE_API_ SessionModel : public QAbstractItemModel
diff --git a/GUI/coregui/Models/SessionModelDelegate.cpp b/GUI/coregui/Models/SessionModelDelegate.cpp
index 6727b241fd404c31a2ee5b4ef95b9bb41e701bc0..599451fb926197d0f0ddf31014f6562ca62d5883 100644
--- a/GUI/coregui/Models/SessionModelDelegate.cpp
+++ b/GUI/coregui/Models/SessionModelDelegate.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SessionModelDelegate.h"
-#include "CustomEditors.h"
-#include "CustomEventFilters.h"
-#include "PropertyEditorFactory.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionModelDelegate.h"
+#include "GUI/coregui/Views/PropertyEditor/CustomEditors.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QApplication>
 
 namespace
diff --git a/GUI/coregui/Models/SessionModelDelegate.h b/GUI/coregui/Models/SessionModelDelegate.h
index d8645036d5de8e28e41f6f06d4795fa70183d513..9372b980fe2c5a15d1670e38e26ebc9c6ac8d836 100644
--- a/GUI/coregui/Models/SessionModelDelegate.h
+++ b/GUI/coregui/Models/SessionModelDelegate.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONMODELDELEGATE_H
 #define SESSIONMODELDELEGATE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStyledItemDelegate>
 
 //! The SessionModelDelegate class presents the content of SessionModel items in
diff --git a/GUI/coregui/Models/SessionXML.cpp b/GUI/coregui/Models/SessionXML.cpp
index 4917a9769ee13f90e9f77ebfcf81ed06e7829f56..73d956616af7aa6bc99846580d84aaa4ecf5da9d 100644
--- a/GUI/coregui/Models/SessionXML.cpp
+++ b/GUI/coregui/Models/SessionXML.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "ComboProperty.h"
-#include "ExternalProperty.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "GroupItemController.h"
-#include "ItemFactory.h"
-#include "MessageService.h"
-#include "SessionItemTags.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/GroupItemController.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "GUI/coregui/Models/SessionItemTags.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QtCore/QXmlStreamWriter>
 
 namespace
diff --git a/GUI/coregui/Models/SessionXML.h b/GUI/coregui/Models/SessionXML.h
index b6caa8d89786849df3ae648f6aa866b76293fc2c..e3edbf435771ba0681502d8d6fdd67b7c95822f2 100644
--- a/GUI/coregui/Models/SessionXML.h
+++ b/GUI/coregui/Models/SessionXML.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONXML_H
 #define SESSIONXML_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QVariant>
 
 class QXmlStreamWriter;
diff --git a/GUI/coregui/Models/SimulationOptionsItem.cpp b/GUI/coregui/Models/SimulationOptionsItem.cpp
index 05fd0f0fca877a07a1c70bf5d0e788b5a0b28fc4..06c8c675dc85e24ba13ab3893d99a60b5ea3637d 100644
--- a/GUI/coregui/Models/SimulationOptionsItem.cpp
+++ b/GUI/coregui/Models/SimulationOptionsItem.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SimulationOptionsItem.h"
-#include "ComboProperty.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "GUI/coregui/Models/ComboProperty.h"
 #include <thread>
 
 namespace
diff --git a/GUI/coregui/Models/SimulationOptionsItem.h b/GUI/coregui/Models/SimulationOptionsItem.h
index fb9fa603f23a3ae4dab2d0262c403d13c2c528d6..2a1764aa30b7ab96905e5a3c913747ca3fd866a9 100644
--- a/GUI/coregui/Models/SimulationOptionsItem.h
+++ b/GUI/coregui/Models/SimulationOptionsItem.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONOPTIONSITEM_H
 #define SIMULATIONOPTIONSITEM_H
 
-#include "SessionItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QMap>
 
 //! The SimulationOptionsItem class holds simulation status (run policy, number of threads,
diff --git a/GUI/coregui/Models/SpecularBeamInclinationItem.cpp b/GUI/coregui/Models/SpecularBeamInclinationItem.cpp
index e5b00e89643e7d1fc9d0644ca7e0e2e5108349fe..acb77c13617f998127f356b8ff8d0264bc81632a 100644
--- a/GUI/coregui/Models/SpecularBeamInclinationItem.cpp
+++ b/GUI/coregui/Models/SpecularBeamInclinationItem.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SpecularBeamInclinationItem.h"
-#include "AxesItems.h"
-#include "GroupItem.h"
-#include "PointwiseAxisItem.h"
-#include "Units.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/SpecularBeamInclinationItem.h b/GUI/coregui/Models/SpecularBeamInclinationItem.h
index 9fa1c04ecb299c70edb0f83ba975d140bec11866..9670531f33d09aaa5f159e358fb3dff6dec3742c 100644
--- a/GUI/coregui/Models/SpecularBeamInclinationItem.h
+++ b/GUI/coregui/Models/SpecularBeamInclinationItem.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARBEAMINCLINATIONITEM_H
 #define SPECULARBEAMINCLINATIONITEM_H
 
-#include "BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
 
 //! BeamInclinationAxisItem contains inclination angle axis for specular/off-specular
 //! simulations and also provides distribution functionality.
diff --git a/GUI/coregui/Models/SpecularDataItem.cpp b/GUI/coregui/Models/SpecularDataItem.cpp
index b69a911da0dbc04409adce24021b7266da8abc02..607495f8683ed960bce767fb6b4dd5cd21fb0764 100644
--- a/GUI/coregui/Models/SpecularDataItem.cpp
+++ b/GUI/coregui/Models/SpecularDataItem.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SpecularDataItem.h"
-#include "AxesItems.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "ImportDataUtils.h"
-#include "JobItemUtils.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
 
 const QString SpecularDataItem::P_TITLE = "Title";
 const QString SpecularDataItem::P_XAXIS = "x-axis";
diff --git a/GUI/coregui/Models/SpecularDataItem.h b/GUI/coregui/Models/SpecularDataItem.h
index 67a98d10e28b5b77e512b342e9287f40ac516448..8131846e961806fbe042ff6d3c25e7f2cd969bf4 100644
--- a/GUI/coregui/Models/SpecularDataItem.h
+++ b/GUI/coregui/Models/SpecularDataItem.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARDATAITEM_H
 #define SPECULARDATAITEM_H
 
-#include "DataItem.h"
+#include "GUI/coregui/Models/DataItem.h"
 
 class AmplitudeAxisItem;
 class BasicAxisItem;
diff --git a/GUI/coregui/Models/SphericalDetectorItem.cpp b/GUI/coregui/Models/SphericalDetectorItem.cpp
index b0bdcc07e245920ccea84d3fddc0dd325905c556..87006feb7d762aec6f0f63293cb56a000a7d8bbf 100644
--- a/GUI/coregui/Models/SphericalDetectorItem.cpp
+++ b/GUI/coregui/Models/SphericalDetectorItem.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SphericalDetectorItem.h"
-#include "AxesItems.h"
-#include "SphericalDetector.h"
-#include "Units.h"
+#include "GUI/coregui/Models/SphericalDetectorItem.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Parametrization/Units.h"
 
 const QString SphericalDetectorItem::P_PHI_AXIS = "Phi axis";
 const QString SphericalDetectorItem::P_ALPHA_AXIS = "Alpha axis";
diff --git a/GUI/coregui/Models/SphericalDetectorItem.h b/GUI/coregui/Models/SphericalDetectorItem.h
index 348743635740fcaca1185eae05d187a86e1ac595..c402c4c07daa9d9b4c4b17c4afd7652416079310 100644
--- a/GUI/coregui/Models/SphericalDetectorItem.h
+++ b/GUI/coregui/Models/SphericalDetectorItem.h
@@ -15,7 +15,7 @@
 #ifndef SPHERICALDETECTORITEM_H
 #define SPHERICALDETECTORITEM_H
 
-#include "DetectorItems.h"
+#include "GUI/coregui/Models/DetectorItems.h"
 
 class BA_CORE_API_ SphericalDetectorItem : public DetectorItem
 {
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index 89387ffdc1e24b7aae55f582dff6b2328ab47414..8b917883b14b3aa353487ccd10c0d660d7f27a79 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -12,64 +12,64 @@
 //
 // ************************************************************************** //
 
-#include "TransformFromDomain.h"
-#include "AngularSpecScan.h"
-#include "AxesItems.h"
-#include "BackgroundItems.h"
-#include "Beam.h"
-#include "BeamAngleItems.h"
-#include "BeamItems.h"
-#include "ConstantBackground.h"
-#include "ConvolutionDetectorResolution.h"
-#include "DetectorItems.h"
-#include "Distributions.h"
-#include "Ellipse.h"
-#include "FTDecayFunctionItems.h"
-#include "FTDistributionItems.h"
-#include "FTDistributions1D.h"
-#include "FTDistributions2D.h"
-#include "FixedBinAxis.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "FootprintItems.h"
-#include "GISASSimulation.h"
-#include "GUIHelpers.h"
-#include "INodeUtils.h"
-#include "InfinitePlane.h"
-#include "InstrumentItems.h"
-#include "InterferenceFunctionItems.h"
-#include "InterferenceFunctions.h"
-#include "Lattice2DItems.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerItem.h"
-#include "LayerRoughness.h"
-#include "LayerRoughnessItems.h"
-#include "Line.h"
-#include "MaskItems.h"
-#include "OffSpecSimulation.h"
-#include "ParameterPattern.h"
-#include "ParameterUtils.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "PoissonNoiseBackground.h"
-#include "Polygon.h"
-#include "RangedDistributions.h"
-#include "Rectangle.h"
-#include "RectangularDetector.h"
-#include "RectangularDetectorItem.h"
-#include "RegionOfInterest.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "ResolutionFunctionItems.h"
-#include "ScanResolution.h"
-#include "SessionItemUtils.h"
-#include "SpecularBeamInclinationItem.h"
-#include "SpecularSimulation.h"
-#include "SphericalDetector.h"
-#include "SphericalDetectorItem.h"
-#include "Units.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/BackgroundItems.h"
+#include "Core/Beam/Beam.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "Core/Computation/ConstantBackground.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Mask/Ellipse.h"
+#include "GUI/coregui/Models/FTDecayFunctionItems.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "GUI/coregui/Models/FootprintItems.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Export/INodeUtils.h"
+#include "Core/Mask/InfinitePlane.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "GUI/coregui/Models/LayerRoughnessItems.h"
+#include "Core/Mask/Line.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "Core/Computation/PoissonNoiseBackground.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "GUI/coregui/Models/ResolutionFunctionItems.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "GUI/coregui/Models/SphericalDetectorItem.h"
+#include "Core/Parametrization/Units.h"
 
 using namespace INodeUtils;
 using SessionItemUtils::SetVectorItem;
diff --git a/GUI/coregui/Models/TransformFromDomain.h b/GUI/coregui/Models/TransformFromDomain.h
index 58d5013cefe715956fd46679e3967010bdfb894f..e363d9c21c4a1e02f2d8e4ddf8d156de4b835880 100644
--- a/GUI/coregui/Models/TransformFromDomain.h
+++ b/GUI/coregui/Models/TransformFromDomain.h
@@ -15,7 +15,7 @@
 #ifndef TRANSFORMFROMDOMAIN_H
 #define TRANSFORMFROMDOMAIN_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 class BeamDistributionItem;
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index 790e50325b335b7e40bcc22fbebccd32d925f58e..db8c18d01d5386772338dee365f658f218404385 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -12,49 +12,49 @@
 //
 // ************************************************************************** //
 
-#include "TransformToDomain.h"
-#include "AngularSpecScan.h"
-#include "BeamAngleItems.h"
-#include "BeamItems.h"
-#include "BeamWavelengthItem.h"
-#include "BornAgainNamespace.h"
-#include "ComboProperty.h"
-#include "DetectorItems.h"
-#include "Distributions.h"
-#include "FTDecayFunctionItems.h"
-#include "FTDistributionItems.h"
-#include "GISASSimulation.h"
-#include "GUIHelpers.h"
-#include "InterferenceFunctions.h"
-#include "JobItem.h"
-#include "JobModelFunctions.h"
-#include "Lattice2DItems.h"
-#include "LayerItem.h"
-#include "LayerRoughnessItems.h"
-#include "MaskItems.h"
-#include "MaterialItemUtils.h"
-#include "MesoCrystal.h"
-#include "MesoCrystalItem.h"
-#include "MultiLayerItem.h"
-#include "ParameterPattern.h"
-#include "Particle.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "RangedDistributions.h"
-#include "RectangularDetectorItem.h"
-#include "RotationItems.h"
-#include "ScanResolution.h"
-#include "SessionItemUtils.h"
-#include "SimulationOptionsItem.h"
-#include "SpecularBeamInclinationItem.h"
-#include "SphericalDetectorItem.h"
-#include "TransformationItem.h"
-#include "Units.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "GUI/coregui/Models/BeamAngleItems.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/BeamWavelengthItem.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "Core/Parametrization/Distributions.h"
+#include "GUI/coregui/Models/FTDecayFunctionItems.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModelFunctions.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/LayerRoughnessItems.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "GUI/coregui/Models/RotationItems.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Models/SphericalDetectorItem.h"
+#include "GUI/coregui/Models/TransformationItem.h"
+#include "Core/Parametrization/Units.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 using SessionItemUtils::GetVectorItem;
 
diff --git a/GUI/coregui/Models/TransformToDomain.h b/GUI/coregui/Models/TransformToDomain.h
index 415e25244bbc9d7dc394f1a5ca438f9d271001fb..e8c09040b3d316f9f1817e2724024a573deb6463 100644
--- a/GUI/coregui/Models/TransformToDomain.h
+++ b/GUI/coregui/Models/TransformToDomain.h
@@ -15,16 +15,16 @@
 #ifndef TRANSFORMTODOMAIN_H
 #define TRANSFORMTODOMAIN_H
 
-#include "Beam.h"
-#include "Distributions.h" // for IDistribution1D
-#include "IInterferenceFunction.h"
-#include "IParticle.h"
-#include "Instrument.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MultiLayer.h"
-#include "ParticleDistribution.h"
-#include "ParticleLayout.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Parametrization/Distributions.h" // for IDistribution1D
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Aggregate/ParticleLayout.h"
 #include <memory>
 
 class AngularSpecScan;
diff --git a/GUI/coregui/Models/TransformationItem.cpp b/GUI/coregui/Models/TransformationItem.cpp
index 0965b814d53c8fa553675ec443ae9cac1a8f277d..8e0bc4ec9609e0a96325b6aaeb097b9f8c36b869 100644
--- a/GUI/coregui/Models/TransformationItem.cpp
+++ b/GUI/coregui/Models/TransformationItem.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "TransformationItem.h"
+#include "GUI/coregui/Models/TransformationItem.h"
 
 const QString TransformationItem::P_ROT = "Rotation type";
 
diff --git a/GUI/coregui/Models/TransformationItem.h b/GUI/coregui/Models/TransformationItem.h
index 353e7d90b9aa483616af65fe7c8a9e8d54122ff9..4f9eb9d23c9e8e0035d6331df8e1921fc2cba529 100644
--- a/GUI/coregui/Models/TransformationItem.h
+++ b/GUI/coregui/Models/TransformationItem.h
@@ -15,7 +15,7 @@
 #ifndef TRANSFORMATIONITEM_H
 #define TRANSFORMATIONITEM_H
 
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 
 class BA_CORE_API_ TransformationItem : public SessionGraphicsItem
 {
diff --git a/GUI/coregui/Models/VectorItem.cpp b/GUI/coregui/Models/VectorItem.cpp
index aa32bb309db4fe3ded9e5493b58c43484c4035d3..7e49179acac9911026141e62c9aac666f5863c1c 100644
--- a/GUI/coregui/Models/VectorItem.cpp
+++ b/GUI/coregui/Models/VectorItem.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "VectorItem.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 const QString VectorItem::P_X = "X";
 const QString VectorItem::P_Y = "Y";
diff --git a/GUI/coregui/Models/VectorItem.h b/GUI/coregui/Models/VectorItem.h
index d698b981de55a2bea27bfa8249478e8f286fc8e2..b51cf93c98e3712cc565027309a991519978cf06 100644
--- a/GUI/coregui/Models/VectorItem.h
+++ b/GUI/coregui/Models/VectorItem.h
@@ -15,8 +15,8 @@
 #ifndef VECTORITEM_H
 #define VECTORITEM_H
 
-#include "SessionItem.h"
-#include "Vectors3D.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "Core/Vector/Vectors3D.h"
 
 class BA_CORE_API_ VectorItem : public SessionItem
 {
diff --git a/GUI/coregui/Views/AccordionWidget/AccordionWidget.cpp b/GUI/coregui/Views/AccordionWidget/AccordionWidget.cpp
index 9d03405bd3fc258df3f3f5a6e448efbe180fb7a1..5553f3548c67fb64a0a35bbf7b30b700dca7ee14 100644
--- a/GUI/coregui/Views/AccordionWidget/AccordionWidget.cpp
+++ b/GUI/coregui/Views/AccordionWidget/AccordionWidget.cpp
@@ -28,7 +28,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-#include "AccordionWidget.h"
+#include "GUI/coregui/Views/AccordionWidget/AccordionWidget.h"
 #include <QDebug>
 #include <stdexcept>
 
diff --git a/GUI/coregui/Views/AccordionWidget/AccordionWidget.h b/GUI/coregui/Views/AccordionWidget/AccordionWidget.h
index f9f8fe53d918a400d85ab6541bddbbf756186f48..f9e7e0e404222352df85f5226cadb87d16d0aa09 100644
--- a/GUI/coregui/Views/AccordionWidget/AccordionWidget.h
+++ b/GUI/coregui/Views/AccordionWidget/AccordionWidget.h
@@ -31,9 +31,9 @@
 #ifndef ACCORDIONWIDGET_H
 #define ACCORDIONWIDGET_H
 
-#include "ClickableFrame.h"
-#include "ContentPane.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/AccordionWidget/ClickableFrame.h"
+#include "GUI/coregui/Views/AccordionWidget/ContentPane.h"
+#include "Wrap/WinDllMacros.h"
 #include <QGridLayout>
 #include <QHBoxLayout>
 #include <QPainter>
diff --git a/GUI/coregui/Views/AccordionWidget/ClickableFrame.cpp b/GUI/coregui/Views/AccordionWidget/ClickableFrame.cpp
index 3c3db05ce5022ca9edd788489288ac1d4a062881..87013164e0b67926f636fce70cb0c59b3cadaa1d 100644
--- a/GUI/coregui/Views/AccordionWidget/ClickableFrame.cpp
+++ b/GUI/coregui/Views/AccordionWidget/ClickableFrame.cpp
@@ -28,7 +28,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-#include "ClickableFrame.h"
+#include "GUI/coregui/Views/AccordionWidget/ClickableFrame.h"
 #include <QStyleOption>
 
 ClickableFrame::ClickableFrame(QString header, QWidget* parent, Qt::WindowFlags f)
diff --git a/GUI/coregui/Views/AccordionWidget/ClickableFrame.h b/GUI/coregui/Views/AccordionWidget/ClickableFrame.h
index 4bedc9fd060973c6b24968c67e5843c26a725256..dcd551fef9ade2d269b61f6cbca1188a99390b26 100644
--- a/GUI/coregui/Views/AccordionWidget/ClickableFrame.h
+++ b/GUI/coregui/Views/AccordionWidget/ClickableFrame.h
@@ -31,7 +31,7 @@
 #ifndef CLICKABLEFRAME_H
 #define CLICKABLEFRAME_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFrame>
 #include <QGraphicsView>
 #include <QHBoxLayout>
diff --git a/GUI/coregui/Views/AccordionWidget/ContentPane.cpp b/GUI/coregui/Views/AccordionWidget/ContentPane.cpp
index f16c45130493c2b4c0246b1bc61110f19cce7d89..d9bba069e82496836d557b9270e86ed5b37049d2 100644
--- a/GUI/coregui/Views/AccordionWidget/ContentPane.cpp
+++ b/GUI/coregui/Views/AccordionWidget/ContentPane.cpp
@@ -28,7 +28,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-#include "ContentPane.h"
+#include "GUI/coregui/Views/AccordionWidget/ContentPane.h"
 
 namespace clickcon = ClickableFrame_constants;
 
diff --git a/GUI/coregui/Views/AccordionWidget/ContentPane.h b/GUI/coregui/Views/AccordionWidget/ContentPane.h
index 1cd958491b2ff1d8adfaacee7e92223530637623..1236fc696416511d66fb3083dcd5fbf9ac712d64 100644
--- a/GUI/coregui/Views/AccordionWidget/ContentPane.h
+++ b/GUI/coregui/Views/AccordionWidget/ContentPane.h
@@ -31,9 +31,9 @@
 #ifndef CONTENTPANE_H
 #define CONTENTPANE_H
 
-#include "AccordionWidget.h"
-#include "ClickableFrame.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/AccordionWidget/AccordionWidget.h"
+#include "GUI/coregui/Views/AccordionWidget/ClickableFrame.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFrame>
 #include <QHBoxLayout>
 #include <QPainter>
diff --git a/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.cpp b/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.cpp
index 6c2875eb6d00366c15be5434aa4ae73cd37ae7ba..aaa471053bed1bb7b8907c2550743098e2f5223b 100644
--- a/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.cpp
+++ b/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "AdjustingScrollArea.h"
+#include "GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.h"
 #include <QEvent>
 #include <QScrollBar>
 
diff --git a/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.h b/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.h
index 164a027c5e3f40cc8fdaad14b451bfdd6e808f87..4c491387397e90075d602596c5c5b5e68efa6103 100644
--- a/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.h
+++ b/GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.h
@@ -15,7 +15,7 @@
 #ifndef ADJUSTINGSCROLLAREA_H
 #define ADJUSTINGSCROLLAREA_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QScrollArea>
 
 //! Modification of standard scroll area, which makes widget with dynamic layout ocuupy whole
diff --git a/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp b/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp
index 233c46a7d28702df4bdf01d35b08366a44853df1..9d30bf888cf7023bb023342b6b348e8b4d98f14b 100644
--- a/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp
@@ -16,7 +16,7 @@
  * Copyright 2011 Aurélien Gâteau <agateau@kde.org>
  * License: LGPL v2.1 or later (see COPYING)
  */
-#include "ColumnResizer.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
 
 #include <QDebug>
 #include <QEvent>
diff --git a/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.cpp b/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.cpp
index 1a0ad4d79d1a2e7268ee7d1da88d5898ab2cc4ce..b4d02dcc28db8a64fbbd5cc0c728bb5ef872d4f2 100644
--- a/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.cpp
+++ b/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "DockWidgetInfo.h"
+#include "GUI/coregui/Views/CommonWidgets/DockWidgetInfo.h"
 #include <QDockWidget>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.h b/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.h
index 3071af8d7f20aed9cd8bd59b2834d9efb45e636d..14d904c45d2c1db9abd70ef8fe0c4be281219794 100644
--- a/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.h
+++ b/GUI/coregui/Views/CommonWidgets/DockWidgetInfo.h
@@ -15,7 +15,7 @@
 #ifndef DOCKWIDGETINFO_H
 #define DOCKWIDGETINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <qnamespace.h>
 
 class QDockWidget;
diff --git a/GUI/coregui/Views/CommonWidgets/DocksController.cpp b/GUI/coregui/Views/CommonWidgets/DocksController.cpp
index d08a0280b7efcc184d24955dabfae3b575fd599a..f0f4750362c9162483c8bcf194334568262b217f 100644
--- a/GUI/coregui/Views/CommonWidgets/DocksController.cpp
+++ b/GUI/coregui/Views/CommonWidgets/DocksController.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DocksController.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/Views/CommonWidgets/DocksController.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 #include "fancymainwindow.h"
 #include <QAbstractItemView>
 #include <QAction>
diff --git a/GUI/coregui/Views/CommonWidgets/DocksController.h b/GUI/coregui/Views/CommonWidgets/DocksController.h
index 299f7bb01a450dfaffe51c489b184453088014c1..b4dd7ba519c88145910af3af81186335ea4346bb 100644
--- a/GUI/coregui/Views/CommonWidgets/DocksController.h
+++ b/GUI/coregui/Views/CommonWidgets/DocksController.h
@@ -15,8 +15,8 @@
 #ifndef DOCKSCONTROLLER_H
 #define DOCKSCONTROLLER_H
 
-#include "DockWidgetInfo.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/CommonWidgets/DockWidgetInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <QSize>
 #include <map>
diff --git a/GUI/coregui/Views/CommonWidgets/InfoPanel.cpp b/GUI/coregui/Views/CommonWidgets/InfoPanel.cpp
index a801587076a660f32d07bb4405a61126e2b8cab5..dd68e261f582db97e5b895124d392ff0daf27fbd 100644
--- a/GUI/coregui/Views/CommonWidgets/InfoPanel.cpp
+++ b/GUI/coregui/Views/CommonWidgets/InfoPanel.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "InfoPanel.h"
-#include "InfoPanelToolBar.h"
+#include "GUI/coregui/Views/CommonWidgets/InfoPanel.h"
+#include "GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h"
 #include <QBoxLayout>
 #include <QResizeEvent>
 #include <QStackedWidget>
diff --git a/GUI/coregui/Views/CommonWidgets/InfoPanel.h b/GUI/coregui/Views/CommonWidgets/InfoPanel.h
index 4aca10ca2790b3755a992dbd05e2c60452a8b038..d64686bc92dc08d36ca2e813a059af0af578b95e 100644
--- a/GUI/coregui/Views/CommonWidgets/InfoPanel.h
+++ b/GUI/coregui/Views/CommonWidgets/InfoPanel.h
@@ -15,7 +15,7 @@
 #ifndef INFOPANEL_H
 #define INFOPANEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFrame>
 
 class QStackedWidget;
diff --git a/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.cpp b/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.cpp
index b80840d2dcccd65908bc4088016879df3f51bac4..a0cc761a1a4b8e5550ff0c1cf0ac4f1c4b84d576 100644
--- a/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.cpp
+++ b/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "InfoPanelToolBar.h"
+#include "GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h"
 #include <QAction>
 #include <QHBoxLayout>
 #include <QToolButton>
diff --git a/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h b/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h
index c714d31fb52c031129d8ff592a680787b3fd6c1e..2d022982e0340e53cf57797d6b5b761cf982a788 100644
--- a/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h
+++ b/GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h
@@ -15,7 +15,7 @@
 #ifndef INFOPANELTOOLBAR_H
 #define INFOPANELTOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 
 class QAction;
 
diff --git a/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp b/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp
index 45f56cf404263879e30e1001c686115c1f3145d2..63579c911ca9d2174520833229f21ab7e6c8e113 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ItemComboToolBar.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboToolBar.h"
 #include <QAction>
 #include <QComboBox>
 #include <QStandardItemModel>
diff --git a/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.h b/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.h
index 4a35f265ed70933f90c6feb0b3b779798363032e..5957a6d15ca09449c1278553f2cd7d05a79636e3 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.h
+++ b/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.h
@@ -15,7 +15,7 @@
 #ifndef ITEMCOMBOTOOLBAR_H
 #define ITEMCOMBOTOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 #include <QList>
 
 class QAction;
diff --git a/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp b/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp
index f55746f9c8485dca4336d84588a1a2fb003bcba8..574c95e30071232ce02557fb001cd9cc92b70f74 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ItemComboWidget.h"
-#include "GUIHelpers.h"
-#include "ItemComboToolBar.h"
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboWidget.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboToolBar.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <QComboBox>
 #include <QEvent>
 #include <QStackedWidget>
diff --git a/GUI/coregui/Views/CommonWidgets/ItemComboWidget.h b/GUI/coregui/Views/CommonWidgets/ItemComboWidget.h
index 73255d4828cfb2e3c51325a2cc420d444115e6b1..0710b46b0364e4222b2e10921040841b8006fed9 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemComboWidget.h
+++ b/GUI/coregui/Views/CommonWidgets/ItemComboWidget.h
@@ -15,9 +15,9 @@
 #ifndef ITEMCOMBOWIDGET_H
 #define ITEMCOMBOWIDGET_H
 
-#include "IFactory.h"
-#include "SessionItemWidget.h"
-#include "WinDllMacros.h"
+#include "Core/StandardSamples/IFactory.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QString>
 #include <QWidget>
diff --git a/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp b/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp
index 78bf220f66f17d0c3e0a6cb63a9c5876d24f5cba..0f24b34cd83c4bfc9c6f21406a9dc8af9c71b707 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ItemSelectorWidget.h"
-#include "SessionDecorationModel.h"
-#include "SessionItem.h"
-#include "SessionModel.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h"
+#include "GUI/coregui/Models/SessionDecorationModel.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QListView>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h b/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h
index 2b04c6fd36215db2691b4c1bc0e86006e8a9c30f..4bb83e8fa65ad0a107d9b54d3a0b462cd0b87732 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h
+++ b/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h
@@ -15,7 +15,7 @@
 #ifndef ITEMSELECTORWIDGET_H
 #define ITEMSELECTORWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QItemSelectionModel>
 #include <QWidget>
 #include <memory>
diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h
index 1a5f964ce11d828341bc39f95fa26074de2566dc..6b3a857ecc3a42d7e819b325233087271efa6503 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h
+++ b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h
@@ -15,7 +15,7 @@
 #ifndef ITEMSTACKPRESENTER_H
 #define ITEMSTACKPRESENTER_H
 
-#include "ItemStackWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackWidget.h"
 #include <QDebug>
 #include <QMap>
 #include <QStackedWidget>
diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp
index 000aa1c29bb4294e912b89a5896472ab056fe2e6..6171f9d354cdbbc2d0a1c7b3af6594b73d183948 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ItemStackWidget.h"
-#include "GUIHelpers.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackWidget.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QStackedWidget>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h
index d86b8aae43668458c83deaf1cc2d15d31944e14d..50cd3b44f4c8c65d87b89fbcb0f305d10ca3647c 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h
+++ b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h
@@ -15,7 +15,7 @@
 #ifndef ITEMSTACKWIDGET_H
 #define ITEMSTACKWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SessionModel;
diff --git a/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp b/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
index eaa283794256485b86eeb636162f07cc3fdf23ea..5753620db805313e5749ca9053d02d19525eac91 100644
--- a/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ModelTreeView.h"
-#include "GUIHelpers.h"
-#include "SessionDecorationModel.h"
-#include "SessionModel.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/CommonWidgets/ModelTreeView.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/SessionDecorationModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QTreeView>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/CommonWidgets/ModelTreeView.h b/GUI/coregui/Views/CommonWidgets/ModelTreeView.h
index bd965baae950be6f5a946e9db3ea33d0b4989ed1..45769b3c882736c3c117adc4245dfe0aadcc2907 100644
--- a/GUI/coregui/Views/CommonWidgets/ModelTreeView.h
+++ b/GUI/coregui/Views/CommonWidgets/ModelTreeView.h
@@ -15,7 +15,7 @@
 #ifndef MODELTREEVIEW_H
 #define MODELTREEVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QTreeView;
diff --git a/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp b/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp
index 61646e560e6653cf23d8531b578d94f6fe3c99af..3f00501ea42c36937fcaba7a86659aac27455dcf 100644
--- a/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp
+++ b/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SessionItemController.h"
-#include "GUIHelpers.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemController.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 SessionItemController::SessionItemController(QObject* prt)
     : QObject(prt), m_item(nullptr), m_parent_subscribed(false)
diff --git a/GUI/coregui/Views/CommonWidgets/SessionItemController.h b/GUI/coregui/Views/CommonWidgets/SessionItemController.h
index d3057fc29d5aeac47b4e6a1c3687bbf9c744de0f..9e31adf511fe66fe7c666492be1496047599a936 100644
--- a/GUI/coregui/Views/CommonWidgets/SessionItemController.h
+++ b/GUI/coregui/Views/CommonWidgets/SessionItemController.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONITEMCONTROLLER_H
 #define SESSIONITEMCONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <functional>
 
diff --git a/GUI/coregui/Views/CommonWidgets/SessionItemWidget.cpp b/GUI/coregui/Views/CommonWidgets/SessionItemWidget.cpp
index d517ef82915bd7a37101297f5ce1a7d331f01c5d..bae0aa3d2dbf90716a222776af9bcbd7bbfce58f 100644
--- a/GUI/coregui/Views/CommonWidgets/SessionItemWidget.cpp
+++ b/GUI/coregui/Views/CommonWidgets/SessionItemWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SessionItemWidget.h"
-#include "SessionItem.h"
-#include "SessionItemController.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemController.h"
 
 SessionItemWidget::SessionItemWidget(QWidget* parent)
     : QWidget(parent), m_itemController(new SessionItemController(this))
diff --git a/GUI/coregui/Views/CommonWidgets/SessionItemWidget.h b/GUI/coregui/Views/CommonWidgets/SessionItemWidget.h
index f7b0753a651ac0f595c4620ab1e8c5a882b53576..b88308a2249d1b97ace3e6963f9374ee37f84d77 100644
--- a/GUI/coregui/Views/CommonWidgets/SessionItemWidget.h
+++ b/GUI/coregui/Views/CommonWidgets/SessionItemWidget.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONITEMWIDGET_H
 #define SESSIONITEMWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/CommonWidgets/StatusLabel.cpp b/GUI/coregui/Views/CommonWidgets/StatusLabel.cpp
index cf4ac60993a42681dedf0c558950f35a38e04182..c32c37dd9e02d1541a788fd68cd4b8253ca32bc7 100644
--- a/GUI/coregui/Views/CommonWidgets/StatusLabel.cpp
+++ b/GUI/coregui/Views/CommonWidgets/StatusLabel.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "StatusLabel.h"
+#include "GUI/coregui/Views/CommonWidgets/StatusLabel.h"
 #include <QColor>
 #include <QFont>
 #include <QPainter>
-#include "StyleUtils.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/CommonWidgets/StatusLabel.h b/GUI/coregui/Views/CommonWidgets/StatusLabel.h
index eae69fcbfa9119168f1cbe6c3708f9b9c69ed363..ae853fbc35ad4092e18eb93ea301e5a73e7022d1 100644
--- a/GUI/coregui/Views/CommonWidgets/StatusLabel.h
+++ b/GUI/coregui/Views/CommonWidgets/StatusLabel.h
@@ -15,7 +15,7 @@
 #ifndef STATUSLABEL_H
 #define STATUSLABEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFrame>
 
 class QPaintEvent;
diff --git a/GUI/coregui/Views/CommonWidgets/UpdateTimer.cpp b/GUI/coregui/Views/CommonWidgets/UpdateTimer.cpp
index f98d3a224ddc9c29f5454d532a8bb003b32e0d34..f2e48ed93a9fac492ffa9343b7b7e1f460e0bf57 100644
--- a/GUI/coregui/Views/CommonWidgets/UpdateTimer.cpp
+++ b/GUI/coregui/Views/CommonWidgets/UpdateTimer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "UpdateTimer.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
 #include <QTimer>
 
 UpdateTimer::UpdateTimer(int timerInterval, QObject* parent)
diff --git a/GUI/coregui/Views/CommonWidgets/UpdateTimer.h b/GUI/coregui/Views/CommonWidgets/UpdateTimer.h
index ab3706fa212e25bbca14a47473efa4f75331d731..f109ea0f63f00be314e5add3f8a2749c7864be4a 100644
--- a/GUI/coregui/Views/CommonWidgets/UpdateTimer.h
+++ b/GUI/coregui/Views/CommonWidgets/UpdateTimer.h
@@ -15,7 +15,7 @@
 #ifndef UPDATETIMER_H
 #define UPDATETIMER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class QTimer;
diff --git a/GUI/coregui/Views/CommonWidgets/detailsbutton.cpp b/GUI/coregui/Views/CommonWidgets/detailsbutton.cpp
index 6b08ae8ee3e38fa3239b29016cfd9253b0605fd6..87563f95461209113ae18ab8735b59ba0b5c4a04 100644
--- a/GUI/coregui/Views/CommonWidgets/detailsbutton.cpp
+++ b/GUI/coregui/Views/CommonWidgets/detailsbutton.cpp
@@ -23,8 +23,8 @@
 **
 ****************************************************************************/
 
-#include "detailsbutton.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/Views/CommonWidgets/detailsbutton.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 
 #include <QGraphicsOpacityEffect>
 #include <QGuiApplication>
diff --git a/GUI/coregui/Views/CommonWidgets/detailswidget.cpp b/GUI/coregui/Views/CommonWidgets/detailswidget.cpp
index 3f9ddd1cf44d46837de9f95317ac5217e32dcf07..d79f5a26fec3f1a21dc637e9dabc89b351b06349 100644
--- a/GUI/coregui/Views/CommonWidgets/detailswidget.cpp
+++ b/GUI/coregui/Views/CommonWidgets/detailswidget.cpp
@@ -23,9 +23,9 @@
 **
 ****************************************************************************/
 
-#include "detailswidget.h"
-#include "detailsbutton.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/Views/CommonWidgets/detailswidget.h"
+#include "GUI/coregui/Views/CommonWidgets/detailsbutton.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 
 #include <QApplication>
 #include <QCheckBox>
diff --git a/GUI/coregui/Views/CommonWidgets/detailswidget.h b/GUI/coregui/Views/CommonWidgets/detailswidget.h
index cdd0fc9f5306498982453dea176e1ada54437ced..fbde34dde3fd2757cafea4aa47dfc23b617e4cec 100644
--- a/GUI/coregui/Views/CommonWidgets/detailswidget.h
+++ b/GUI/coregui/Views/CommonWidgets/detailswidget.h
@@ -26,7 +26,7 @@
 #ifndef DETAILSWIDGET_H
 #define DETAILSWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 namespace Utils
diff --git a/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp b/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
index c810e330b47d2728b7651580ab79ce05072d0823..fe8163bca304f7f90f0cb77a71869f5bdcb2ab01 100644
--- a/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "FitActivityPanel.h"
-#include "FitSessionManager.h"
-#include "FitSessionWidget.h"
-#include "JobItem.h"
-#include "JobMessagePanel.h"
-#include "JobModel.h"
-#include "JobRealTimeWidget.h"
-#include "RunFitControlWidget.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/FitWidgets/FitActivityPanel.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionManager.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/JobWidgets/JobMessagePanel.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h"
+#include "GUI/coregui/Views/FitWidgets/RunFitControlWidget.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QPushButton>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitActivityPanel.h b/GUI/coregui/Views/FitWidgets/FitActivityPanel.h
index f41ecd14b5329dbf473f93683842346fdb792082..a3572e48c700c24e632563a592b4ca49c460f7ac 100644
--- a/GUI/coregui/Views/FitWidgets/FitActivityPanel.h
+++ b/GUI/coregui/Views/FitWidgets/FitActivityPanel.h
@@ -15,7 +15,7 @@
 #ifndef FITACTIVITYPANEL_H
 #define FITACTIVITYPANEL_H
 
-#include "ItemStackPresenter.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h"
 #include <QWidget>
 
 class JobModel;
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
index c6ae4c5fc19624952e7009bf10700ce398c3ac00..4b5ea62ce2f6adb24f3683355a6099f5ad4b9e8d 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "FitComparisonController.h"
-#include "AxesItems.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "PropertyRepeater.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
-#include "SpecularDataItem.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonController.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.h b/GUI/coregui/Views/FitWidgets/FitComparisonController.h
index 1e67de262b1e33232598a7e06192b1dce0f3b5bb..558f3160da0711ac88bfa366e4fe64e14ff5417a 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonController.h
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.h
@@ -15,7 +15,7 @@
 #ifndef FITCOMPARISONCONTROLLER_H
 #define FITCOMPARISONCONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class DataItem;
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
index ff02cbd260ec0bbc0a3e6136e89ae91e8c3272a0..1338c1add343f397ec7dc8e62518e1b272024a6d 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "FitComparisonViewController.h"
-#include "AxesItems.h"
-#include "Data1DViewItem.h"
-#include "DataItem.h"
-#include "DataPropertyContainer.h"
-#include "IntensityDataFunctions.h"
-#include "JobItem.h"
-#include "PropertyRepeater.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonViewController.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.h b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.h
index 59c7872d13382ddca225688e4205d433e40b8694..d0944b28077de6251b15cd13f6ebb422291eb984 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.h
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.h
@@ -15,7 +15,7 @@
 #ifndef FITCOMPARISONVIEWCONTROLLER_H
 #define FITCOMPARISONVIEWCONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class DataItem;
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp
index 8de7a3667c9b9aaaa1cbd0e771d72386b8313c27..78c43bd706c3f85b5d5afe170af0838ccd5fb6ad 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "FitComparisonWidget.h"
-#include "ColorMap.h"
-#include "ColorMapCanvas.h"
-#include "FitComparisonController.h"
-#include "FitFlowWidget.h"
-#include "FitSuiteItem.h"
-#include "IntensityDataItem.h"
-#include "IntensityDataPropertyWidget.h"
-#include "JobItem.h"
-#include "PlotStatusLabel.h"
-#include "RealDataItem.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonWidget.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonController.h"
+#include "GUI/coregui/Views/FitWidgets/FitFlowWidget.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
+#include "GUI/coregui/Models/RealDataItem.h"
 #include <QAction>
 #include <QGridLayout>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h
index 150e278ac6757a5112247cb83421e3715ba74c0a..b538c09757a0d61e4b6c4d9ef73ded8a2a7e34d0 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h
@@ -15,7 +15,7 @@
 #ifndef FITCOMPARISONWIDGET_H
 #define FITCOMPARISONWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <QMap>
 
 class JobItem;
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp
index 44066e7df29312bdaeed872bf25276a73ba117ef..8c0e2cfc30075b892637efa9bf225e4fcda49fe9 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "FitComparisonWidget1D.h"
-#include "Data1DViewItem.h"
-#include "FitComparisonViewController.h"
-#include "FitFlowWidget.h"
-#include "FitSuiteItem.h"
-#include "IntensityDataPropertyWidget.h"
-#include "JobItem.h"
-#include "Plot1D.h"
-#include "Plot1DCanvas.h"
-#include "PlotStatusLabel.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonViewController.h"
+#include "GUI/coregui/Views/FitWidgets/FitFlowWidget.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/Plot1D.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAction>
 #include <QGridLayout>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.h b/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.h
index e6c415f5d40eb68b256880d48e207e4331a1da98..788699d3720d21c26a6948bb92178593e9fd8a9d 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.h
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.h
@@ -15,7 +15,7 @@
 #ifndef FITCOMPARISONWIDGET1D_NEW_H
 #define FITCOMPARISONWIDGET1D_NEW_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class Data1DViewItem;
 class FitComparison1DViewController;
diff --git a/GUI/coregui/Views/FitWidgets/FitFlowWidget.cpp b/GUI/coregui/Views/FitWidgets/FitFlowWidget.cpp
index 30a9a4b64e0c2234129ab50b69a8154bcde7477b..4441b42c8eb163c40f825a460c0dd8ce1da6f6f5 100644
--- a/GUI/coregui/Views/FitWidgets/FitFlowWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitFlowWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FitFlowWidget.h"
-#include "FitSuiteItem.h"
-#include "HistogramPlot.h"
+#include "GUI/coregui/Views/FitWidgets/FitFlowWidget.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Views/FitWidgets/HistogramPlot.h"
 #include <QVBoxLayout>
 
 FitFlowWidget::FitFlowWidget(QWidget* parent)
diff --git a/GUI/coregui/Views/FitWidgets/FitFlowWidget.h b/GUI/coregui/Views/FitWidgets/FitFlowWidget.h
index 77b3e20b05153c93699cd55145855a2a0cc54be8..a6741cea09a8c71e8870d6f20bbc6c6146edda9f 100644
--- a/GUI/coregui/Views/FitWidgets/FitFlowWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitFlowWidget.h
@@ -15,7 +15,7 @@
 #ifndef FITFLOWWIDGET_H
 #define FITFLOWWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class HistogramPlot;
 class FitSuiteItem;
diff --git a/GUI/coregui/Views/FitWidgets/FitLog.cpp b/GUI/coregui/Views/FitWidgets/FitLog.cpp
index 5b034356fee67a6c2d8ab3e7ba93d2f6602ee142..7278da1f44a95ba4bc965b26a34e1826dbe1fcde 100644
--- a/GUI/coregui/Views/FitWidgets/FitLog.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitLog.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FitLog.h"
-#include "JobMessagePanel.h"
+#include "GUI/coregui/Views/FitWidgets/FitLog.h"
+#include "GUI/coregui/Views/JobWidgets/JobMessagePanel.h"
 
 FitLog::FitLog() : m_messagePanel(nullptr) {}
 
diff --git a/GUI/coregui/Views/FitWidgets/FitLog.h b/GUI/coregui/Views/FitWidgets/FitLog.h
index c6280da01e270a8950d93bd7b1a8d3cbec7d23e6..b2d152191669874c30f0201344c5c4e62f398c21 100644
--- a/GUI/coregui/Views/FitWidgets/FitLog.h
+++ b/GUI/coregui/Views/FitWidgets/FitLog.h
@@ -15,8 +15,8 @@
 #ifndef FITLOG_H
 #define FITLOG_H
 
-#include "FitLogFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/FitWidgets/FitLogFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 #include <vector>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitLogFlags.cpp b/GUI/coregui/Views/FitWidgets/FitLogFlags.cpp
index f851be2c03e37a7fa0f4c9a910298b77b2081f8d..7f0fa5074d891c3e1cc383a5a24eab716ccc3cac 100644
--- a/GUI/coregui/Views/FitWidgets/FitLogFlags.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitLogFlags.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "FitLogFlags.h"
+#include "GUI/coregui/Views/FitWidgets/FitLogFlags.h"
 #include <QMap>
 
 namespace
diff --git a/GUI/coregui/Views/FitWidgets/FitLogFlags.h b/GUI/coregui/Views/FitWidgets/FitLogFlags.h
index 6e702e1f9cee953f4fb90743fa23f4ba487b59ce..e1b8858678dde52551304f4b7ba53344afece4c9 100644
--- a/GUI/coregui/Views/FitWidgets/FitLogFlags.h
+++ b/GUI/coregui/Views/FitWidgets/FitLogFlags.h
@@ -15,7 +15,7 @@
 #ifndef FITLOGFLAGS_H
 #define FITLOGFLAGS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QColor>
 #include <QFlags>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp
index 7550fc04c592229c5976d6e1c47cc4431508505b..7a550f8cea6e7c5a2f100f18aa3d11f99047e06e 100644
--- a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp
@@ -12,28 +12,28 @@
 //
 // ************************************************************************** //
 
-#include "FitObjectiveBuilder.h"
-#include "ChiSquaredModule.h"
-#include "DataItem.h"
-#include "DomainSimulationBuilder.h"
-#include "FitObjective.h"
-#include "FitParameterItems.h"
-#include "FitSuiteItem.h"
-#include "GUIFitObserver.h"
-#include "GUIHelpers.h"
-#include "IIntensityFunction.h"
-#include "IMinimizer.h"
-#include "JobItem.h"
-#include "KernelTypes.h"
-#include "Minimizer.h"
-#include "MinimizerItem.h"
-#include "MultiLayer.h"
-#include "ObjectiveMetric.h"
-#include "OutputData.h"
-#include "Parameters.h"
-#include "RealDataItem.h"
-#include "Simulation.h"
-#include "VarianceFunctions.h"
+#include "GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h"
+#include "Core/Instrument/ChiSquaredModule.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DomainSimulationBuilder.h"
+#include "Core/Fitting/FitObjective.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Views/FitWidgets/GUIFitObserver.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/IIntensityFunction.h"
+#include "Fit/Minimizer/IMinimizer.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/Minimizer.h"
+#include "GUI/coregui/Models/MinimizerItem.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Fitting/ObjectiveMetric.h"
+#include "Core/Instrument/OutputData.h"
+#include "Fit/Kernel/Parameters.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Instrument/VarianceFunctions.h"
 
 FitObjectiveBuilder::FitObjectiveBuilder(JobItem* jobItem) : m_jobItem(jobItem)
 {
diff --git a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h
index bdbe0cb9cc02316a66176630030b68dc7bbc2c36..5f9db20cc0a6b861b87f332e253f71f982215bb9 100644
--- a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h
+++ b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h
@@ -15,7 +15,7 @@
 #ifndef FITOBJECTIVEBUILDER_H
 #define FITOBJECTIVEBUILDER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 
 class JobItem;
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
index b5f95ba45111774f6852cd6c7bbfdc9cd1d55bc3..f1fada162123e5a410e0ebc2293845b904fb8220 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "FitParameterWidget.h"
-#include "CustomEventFilters.h"
-#include "FilterPropertyProxy.h"
-#include "FitParameterHelper.h"
-#include "FitParameterItems.h"
-#include "FitParameterProxyModel.h"
-#include "FitSuiteItem.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "OverlayLabelController.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTuningWidget.h"
-#include "SessionModelDelegate.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/FitWidgets/FitParameterWidget.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/FitParameterProxyModel.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/InfoWidgets/OverlayLabelController.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h"
+#include "GUI/coregui/Models/SessionModelDelegate.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QAction>
 #include <QMenu>
 #include <QTreeView>
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.h b/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
index 1be0f633b736bf97b5dbb9b477e0f1be018a3883..68c39b19ff24e1545fbab748cf0e6f7546fd9755 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.h
@@ -15,7 +15,7 @@
 #ifndef FITPARAMETERWIDGET_H
 #define FITPARAMETERWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <memory>
 
 class JobItem;
diff --git a/GUI/coregui/Views/FitWidgets/FitProgressInfo.cpp b/GUI/coregui/Views/FitWidgets/FitProgressInfo.cpp
index ca718bcfe6c9a003c86dca7430ba0867c0b98af8..c3943ebb788771e8e77fec40a6d9c87f74a2fcca 100644
--- a/GUI/coregui/Views/FitWidgets/FitProgressInfo.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitProgressInfo.cpp
@@ -12,6 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "FitProgressInfo.h"
+#include "GUI/coregui/Views/FitWidgets/FitProgressInfo.h"
 
 FitProgressInfo::FitProgressInfo() : m_chi2(0.0), m_iteration_count(0) {}
diff --git a/GUI/coregui/Views/FitWidgets/FitProgressInfo.h b/GUI/coregui/Views/FitWidgets/FitProgressInfo.h
index 67fc59dba16b321e9477611e2aaf7778653e14c5..56377d0dd0e5f208cd2e366b10006a153ab3f750 100644
--- a/GUI/coregui/Views/FitWidgets/FitProgressInfo.h
+++ b/GUI/coregui/Views/FitWidgets/FitProgressInfo.h
@@ -15,7 +15,7 @@
 #ifndef FITPROGRESSINFO_H
 #define FITPROGRESSINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 #include <vector>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitResultsWidget.cpp b/GUI/coregui/Views/FitWidgets/FitResultsWidget.cpp
index 87f657cbfb4ecb627cea4a484ddc233bcf775ae4..fd24093f18fb1b1cb37133b0a2499ba254c65a75 100644
--- a/GUI/coregui/Views/FitWidgets/FitResultsWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitResultsWidget.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "FitResultsWidget.h"
+#include "GUI/coregui/Views/FitWidgets/FitResultsWidget.h"
 
 FitResultsWidget::FitResultsWidget(QWidget* parent) : QWidget(parent)
 {
diff --git a/GUI/coregui/Views/FitWidgets/FitResultsWidget.h b/GUI/coregui/Views/FitWidgets/FitResultsWidget.h
index c728203010f560de2a29a7e566b6776c0996134d..2331f2a66ea74b11c9acf37236c9051f4abc83ad 100644
--- a/GUI/coregui/Views/FitWidgets/FitResultsWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitResultsWidget.h
@@ -15,7 +15,7 @@
 #ifndef FITRESULTSWIDGET_H
 #define FITRESULTSWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 //! The FitResultsWidget contains fitting summary. Part of FitSuiteWidget.
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionController.cpp b/GUI/coregui/Views/FitWidgets/FitSessionController.cpp
index 789101a69534d4e4dbe694dab288486399d53a50..faccfb5710cd42cadfbf80db78c37c0ab06e61c0 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitSessionController.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "FitSessionController.h"
-#include "FitLog.h"
-#include "FitObjectiveBuilder.h"
-#include "FitParameterItems.h"
-#include "FitProgressInfo.h"
-#include "FitSuiteItem.h"
-#include "FitWorkerLauncher.h"
-#include "GUIFitObserver.h"
-#include "GUIHelpers.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionController.h"
+#include "GUI/coregui/Views/FitWidgets/FitLog.h"
+#include "GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Views/FitWidgets/FitProgressInfo.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Views/FitWidgets/FitWorkerLauncher.h"
+#include "GUI/coregui/Views/FitWidgets/GUIFitObserver.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionController.h b/GUI/coregui/Views/FitWidgets/FitSessionController.h
index 4255e81cbd64bac8185b92cb29c785373d7d1cdf..d2fea57add7ee08c2b10c8bb2fe53022f41bcf29 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionController.h
+++ b/GUI/coregui/Views/FitWidgets/FitSessionController.h
@@ -15,7 +15,7 @@
 #ifndef FITSESSIONCONTROLLER_H
 #define FITSESSIONCONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <memory>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionManager.cpp b/GUI/coregui/Views/FitWidgets/FitSessionManager.cpp
index 4b789c7c6038374912a344e4844d73eb5f8d27d0..4746347e4d556708f6d5ee88479a3b07bc17926b 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionManager.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitSessionManager.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "FitSessionManager.h"
-#include "FitLog.h"
-#include "FitSessionController.h"
-#include "GUIHelpers.h"
-#include "JobItem.h"
-#include "JobMessagePanel.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionManager.h"
+#include "GUI/coregui/Views/FitWidgets/FitLog.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionController.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/JobWidgets/JobMessagePanel.h"
 
 FitSessionManager::FitSessionManager(QObject* parent)
     : QObject(parent), m_activeController(nullptr), m_jobMessagePanel(nullptr)
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionManager.h b/GUI/coregui/Views/FitWidgets/FitSessionManager.h
index 3727cbfd2e5680e534445888bd4bf634715d283a..d4f51e7dadde981bf236f0e4d5a9634a703376bf 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionManager.h
+++ b/GUI/coregui/Views/FitWidgets/FitSessionManager.h
@@ -15,7 +15,7 @@
 #ifndef FITSESSIONMANAGEER_H
 #define FITSESSIONMANAGEER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QObject>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp b/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp
index 3db98e51977de451898fad124d30a74b9d85cefa..2b8b64a9a64c1c7df74b3ded0e4fa6522661ea2f 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "FitSessionWidget.h"
-#include "FitParameterWidget.h"
-#include "FitResultsWidget.h"
-#include "FitSessionController.h"
-#include "JobItem.h"
-#include "MinimizerSettingsWidget.h"
-#include "RunFitControlWidget.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionWidget.h"
+#include "GUI/coregui/Views/FitWidgets/FitParameterWidget.h"
+#include "GUI/coregui/Views/FitWidgets/FitResultsWidget.h"
+#include "GUI/coregui/Views/FitWidgets/FitSessionController.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h"
+#include "GUI/coregui/Views/FitWidgets/RunFitControlWidget.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QTabWidget>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionWidget.h b/GUI/coregui/Views/FitWidgets/FitSessionWidget.h
index a156f048e540e56b9fcfd08d1a3ccaa1ff43d215..97682d75720a5d79cc85d1f8718a9901b58518e5 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionWidget.h
+++ b/GUI/coregui/Views/FitWidgets/FitSessionWidget.h
@@ -15,8 +15,8 @@
 #ifndef FITSESSIONWIDGET_H
 #define FITSESSIONWIDGET_H
 
-#include "FitProgressInfo.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/FitWidgets/FitProgressInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QTabWidget;
diff --git a/GUI/coregui/Views/FitWidgets/FitWorker.cpp b/GUI/coregui/Views/FitWidgets/FitWorker.cpp
index 7228451aff52ab647480075c3dc875cec435da8b..c83e7b096a040d0449d350a2d12175a616995b9f 100644
--- a/GUI/coregui/Views/FitWidgets/FitWorker.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitWorker.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FitWorker.h"
-#include "FitObjectiveBuilder.h"
+#include "GUI/coregui/Views/FitWidgets/FitWorker.h"
+#include "GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.h"
 #include <QDateTime>
 
 void FitWorker::startFit()
diff --git a/GUI/coregui/Views/FitWidgets/FitWorker.h b/GUI/coregui/Views/FitWidgets/FitWorker.h
index 5f2dde9cec6edbf901fa9d8300db88e233b67fba..0d1170ba6bab298cf44d9a97ba3e06103bcbf652 100644
--- a/GUI/coregui/Views/FitWidgets/FitWorker.h
+++ b/GUI/coregui/Views/FitWidgets/FitWorker.h
@@ -15,7 +15,7 @@
 #ifndef FITWORKER_H
 #define FITWORKER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <memory>
 
diff --git a/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.cpp b/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.cpp
index 5811d7c84c2d1001b3a1d100b230fe280bdc1120..263ab802086ea07eb3f554d13e59fd643bc55406 100644
--- a/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FitWorkerLauncher.h"
-#include "FitWorker.h"
+#include "GUI/coregui/Views/FitWidgets/FitWorkerLauncher.h"
+#include "GUI/coregui/Views/FitWidgets/FitWorker.h"
 #include <QThread>
 
 FitWorkerLauncher::FitWorkerLauncher(QObject* parent)
diff --git a/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.h b/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.h
index b0225f7d4bd54d1304920d50a9fdd569304dba91..6a059ca711568df2977e52e8435a9cf9aa330377 100644
--- a/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.h
+++ b/GUI/coregui/Views/FitWidgets/FitWorkerLauncher.h
@@ -15,7 +15,7 @@
 #ifndef FITWORKERLAUNCHER_H
 #define FITWORKERLAUNCHER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <atomic>
 #include <memory>
diff --git a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp
index 6fa89ab6525c660a428fdfcce897e6f43073376f..f9f1359619d5a90f84630d85bf676127a4e8836e 100644
--- a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp
+++ b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "GUIFitObserver.h"
-#include "FitObjective.h"
-#include "FitProgressInfo.h"
-#include "GUIHelpers.h"
-#include "MinimizerResult.h"
-#include "MinimizerUtils.h"
+#include "GUI/coregui/Views/FitWidgets/GUIFitObserver.h"
+#include "Core/Fitting/FitObjective.h"
+#include "GUI/coregui/Views/FitWidgets/FitProgressInfo.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Fit/Tools/MinimizerUtils.h"
 
 GUIFitObserver::GUIFitObserver(QObject* parent)
     : QObject(parent), m_block_update_plots(false), m_update_interval(1)
diff --git a/GUI/coregui/Views/FitWidgets/GUIFitObserver.h b/GUI/coregui/Views/FitWidgets/GUIFitObserver.h
index 8b9e0b6032302bf5c5a40fe4539c9c1e58eca926..3823bb8c63065b707dfd74eed39b3d2d1a7a313d 100644
--- a/GUI/coregui/Views/FitWidgets/GUIFitObserver.h
+++ b/GUI/coregui/Views/FitWidgets/GUIFitObserver.h
@@ -15,7 +15,7 @@
 #ifndef GUIFITOBSERVER_H
 #define GUIFITOBSERVER_H
 
-#include "FitProgressInfo.h"
+#include "GUI/coregui/Views/FitWidgets/FitProgressInfo.h"
 #include <QObject>
 #include <condition_variable>
 #include <mutex>
diff --git a/GUI/coregui/Views/FitWidgets/HistogramPlot.cpp b/GUI/coregui/Views/FitWidgets/HistogramPlot.cpp
index 4489c94ad612f7a7fea4422d050a0a577ad8c669..6d9880c16b61d989ed9bdbe821604ef1b34eb006 100644
--- a/GUI/coregui/Views/FitWidgets/HistogramPlot.cpp
+++ b/GUI/coregui/Views/FitWidgets/HistogramPlot.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "HistogramPlot.h"
-#include "StyleUtils.h"
-#include "plot_constants.h"
+#include "GUI/coregui/Views/FitWidgets/HistogramPlot.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/Views/FitWidgets/plot_constants.h"
 
 HistogramPlot::HistogramPlot(QWidget* parent) : QWidget(parent), m_customPlot(new QCustomPlot)
 
diff --git a/GUI/coregui/Views/FitWidgets/HistogramPlot.h b/GUI/coregui/Views/FitWidgets/HistogramPlot.h
index 29deb47ab402e2c83651c908f7d408c7b5b9c979..1c5c6be8dc2bd1a98e174ba101c8ae57c3beead8 100644
--- a/GUI/coregui/Views/FitWidgets/HistogramPlot.h
+++ b/GUI/coregui/Views/FitWidgets/HistogramPlot.h
@@ -15,7 +15,7 @@
 #ifndef HISTOGRAMPLOT_H
 #define HISTOGRAMPLOT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include "qcustomplot.h"
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp b/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp
index 6990958c68238553f94267535c1fd982cd2a3627..4fde4c352c96c86ff7308600f827cd5a323e106f 100644
--- a/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerSettingsWidget.h"
-#include "ComponentEditor.h"
-#include "FitSuiteItem.h"
-#include "JobItem.h"
-#include "MinimizerItem.h"
+#include "GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/MinimizerItem.h"
 #include <QPushButton>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h b/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h
index 8e67e2e660daa69a6df1477cce61e9b2f0a89820..bf4c96c2c98e664edab3bca5ea1a9e0a61c61b43 100644
--- a/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h
+++ b/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERSETTINGSWIDGET_H
 #define MINIMIZERSETTINGSWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class ComponentEditor;
diff --git a/GUI/coregui/Views/FitWidgets/RunFitControlWidget.cpp b/GUI/coregui/Views/FitWidgets/RunFitControlWidget.cpp
index 61ed1fb0bce25f60108408b6e3cc7b83bbc848ff..725ae6dddfe5cbb722a4e5b34d6901c8ef1f73c6 100644
--- a/GUI/coregui/Views/FitWidgets/RunFitControlWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/RunFitControlWidget.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "RunFitControlWidget.h"
-#include "DesignerHelper.h"
-#include "FitSuiteItem.h"
-#include "JobItem.h"
-#include "WarningSign.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/FitWidgets/RunFitControlWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QFont>
 #include <QHBoxLayout>
 #include <QLabel>
diff --git a/GUI/coregui/Views/FitWidgets/RunFitControlWidget.h b/GUI/coregui/Views/FitWidgets/RunFitControlWidget.h
index 93cacd5912db3d9d62fcbf692a0178e3851c1941..9da3bf963666793fbefeccb1015c213ecc3e2f3f 100644
--- a/GUI/coregui/Views/FitWidgets/RunFitControlWidget.h
+++ b/GUI/coregui/Views/FitWidgets/RunFitControlWidget.h
@@ -15,7 +15,7 @@
 #ifndef RUNFITCONTROLWIDGET_H
 #define RUNFITCONTROLWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <QWidget>
 
 class JobItem;
diff --git a/GUI/coregui/Views/FitWidgets/plot_constants.h b/GUI/coregui/Views/FitWidgets/plot_constants.h
index b2bc8dc9d2d29c95d653a5b1d57ff3028f6bc538..02ba37a4be1794004b695004859c06a3f4531d41 100644
--- a/GUI/coregui/Views/FitWidgets/plot_constants.h
+++ b/GUI/coregui/Views/FitWidgets/plot_constants.h
@@ -15,7 +15,7 @@
 #ifndef PLOT_CONSTANTS_H
 #define PLOT_CONSTANTS_H
 
-#include "StyleUtils.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QSize>
 
 namespace Constants
diff --git a/GUI/coregui/Views/ImportDataView.cpp b/GUI/coregui/Views/ImportDataView.cpp
index adf2fcde9e3dca906632e61ba3b6895eb18d4552..695e6cf36c8bc7468244c8bca8c5dc7066b88d88 100644
--- a/GUI/coregui/Views/ImportDataView.cpp
+++ b/GUI/coregui/Views/ImportDataView.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ImportDataView.h"
-#include "ItemSelectorWidget.h"
-#include "RealDataModel.h"
-#include "RealDataSelectorWidget.h"
-#include "mainwindow.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/ImportDataView.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include "minisplitter.h"
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/ImportDataView.h b/GUI/coregui/Views/ImportDataView.h
index 8e38675d3ced327fda7840c364e152a63f0a50a9..c27724d61ad7c786aa8567634e5016e82f855bd9 100644
--- a/GUI/coregui/Views/ImportDataView.h
+++ b/GUI/coregui/Views/ImportDataView.h
@@ -15,8 +15,8 @@
 #ifndef IMPORTDATAVIEW_H
 #define IMPORTDATAVIEW_H
 
-#include "ItemStackPresenter.h"
-#include "RealDataPresenter.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.h"
 
 class RealDataModel;
 class RealDataSelectorWidget;
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp
index 66cf5d53aec80d5891017cce43680e606debf347..609eac4705dc4b7ba5be0d0e020ebfa7e633907d 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "CsvDataColumn.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h"
 
 /*Csv Intensity Column*/
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h
index 65cdab30304f4a771ac98b22fa40562545f77a7e..70c4786a75998df1df16df1fe2225eaf4cfd1647 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h
@@ -15,8 +15,8 @@
 #ifndef CSVDATACOLUMN_H
 #define CSVDATACOLUMN_H
 
-#include "CsvNamespace.h"
-#include "IUnitConverter.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.h"
+#include "Core/Instrument/IUnitConverter.h"
 
 class CsvIntensityColumn
 {
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp
index feffd46da8983168f80c3d76e86322535e5cbcfa..d3d976f0003a6ec8085b4a5b8ed2d3aedf00a4db 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "CsvImportAssistant.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h"
 #include "DataFormatUtils.cpp"
-#include "DataSelector.h"
-#include "ImportDataInfo.h"
-#include "StyleUtils.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QFileDialog>
 #include <QFormLayout>
 #include <QMenu>
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h
index eec94d76b3ebed228cd85474296b71275d050e33..3d191244e4aeaaf5b0bd2f40fb959208ffa0cb81 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h
@@ -15,11 +15,11 @@
 #ifndef CSVIMPORTASSISTANT_H
 #define CSVIMPORTASSISTANT_H
 
-#include "CsvDataColumn.h"
-#include "CsvReader.h"
-#include "DataFormatUtils.h"
-#include "ImportDataInfo.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvReader.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStringList>
 #include <QWidget>
 #include <memory>
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp
index f1b21a860cf2a4fa8297573e0d3da8861529f5e0..cb808525344ca090cd333613436c1f45f51eabd7 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "CsvImportTable.h"
-#include "ScientificSpinBox.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h"
+#include "GUI/coregui/Views/JobWidgets/ScientificSpinBox.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h
index 4b72b59eafab029d08c9d2837196724e3d502380..08e88f9cd04e8d50d65910fc0aff1786c0553b09 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h
@@ -15,8 +15,8 @@
 #ifndef CSVIMPORTTABLE_H
 #define CSVIMPORTTABLE_H
 
-#include "CsvDataColumn.h"
-#include "CsvNamespace.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.h"
 #include <QTableWidget>
 #include <set>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.cpp
index 64a6e293ddee5137ae80068c47becc640af05ab9..83657540d0caafd4bfaa07d12e12cee5113afc1c 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "CsvNamespace.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.h"
 #include <fstream>
 #include <sstream>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvReader.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvReader.cpp
index 289de6a512dd00f35ae1beffa22d3a5d69436e0f..cf69fd5ac9cf6e0793eaeb80ca0c3c590c434c2f 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvReader.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvReader.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "CsvReader.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvReader.h"
 #include <fstream>
 #include <iostream>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp
index d35284953ff921932e0f57b7418e3a98b94d7172..3113a228a6f1d93dc22da59ed216113c6dae851a 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "DataSelector.h"
-#include "CsvImportTable.h"
-#include "ImportDataInfo.h"
-#include "StyleUtils.h"
-#include "TableContextMenu.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QFileDialog>
 #include <QFormLayout>
 #include <QGroupBox>
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h
index 1266cb722578f9e2aeeca327a2440fa438ef45cc..2a1c7024b4808f713f079ed92a2d39d7bce6f906 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h
@@ -15,12 +15,12 @@
 #ifndef DATASELECTOR_H
 #define DATASELECTOR_H
 
-#include "CsvDataColumn.h"
-#include "CsvImportAssistant.h"
-#include "CsvImportTable.h"
-#include "CsvNamespace.h"
-#include "ImportDataInfo.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <QAction>
 #include <QComboBox>
 #include <QDialog>
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.cpp
index 05b2264cbe1c6fcca458e27638eec8d5c97b0d25..b551d7f192499ac6be6af578bce3962771647abd 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "TableContextMenu.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.h"
 
 TableContextMenu::TableContextMenu(QWidget* parent)
     : QMenu(parent), m_coordSubMenu(this),
diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.h
index 784649bb4c344c4613d0ab0dc8ee736e3f1a0526..698fe661865a418b22d9490463acd8cc1692a1e3 100644
--- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.h
+++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/TableContextMenu.h
@@ -15,8 +15,8 @@
 #ifndef TABLECONTEXTMENU_H
 #define TABLECONTEXTMENU_H
 
-#include "CsvNamespace.h"
-#include "IUnitConverter.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvNamespace.h"
+#include "Core/Instrument/IUnitConverter.h"
 #include <QMenu>
 #include <QStringList>
 #include <QTableWidget>
diff --git a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp
index 732c2ecba47fc02472e4da2ddd4c7f7336519e54..046f0183b985c09f6ba84f56bc379dbd61ae4d76 100644
--- a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "ImportDataUtils.h"
-#include "AppSvc.h"
-#include "AxesItems.h"
-#include "BornAgainNamespace.h"
-#include "CsvImportAssistant.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "IntensityDataIOFactory.h"
-#include "IntensityDataItem.h"
-#include "PointwiseAxis.h"
-#include "RealDataItem.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QFileDialog>
 #include <QFileInfo>
 #include <QMessageBox>
diff --git a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h
index 6b8ebcf714b19202ebfd52b4686210e635e9d216..abf5272d545798ff5ceecba24202e0afa16ba114 100644
--- a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h
+++ b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h
@@ -15,8 +15,8 @@
 #ifndef IMPORTDATAUTILS_H
 #define IMPORTDATAUTILS_H
 
-#include "ImportDataInfo.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <memory>
 #include <vector>
diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
index 8d1a5e861f6a38b8d7242d252ecd1aa116c020cd..5c01b3f9ffea1b52a86b04a2ad0e1c388325e4a8 100644
--- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "LinkInstrumentManager.h"
-#include "AxesItems.h"
-#include "DetectorItems.h"
-#include "ImportDataUtils.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "MaskItems.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
+#include "GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
 #include <QMessageBox>
 #include <QPushButton>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h
index 0ab1b5ef36416e4f7f95257b433fb5f80fb691a6..68d842f27b6f6d58debd16a80d986f6b9c3a91c7 100644
--- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h
+++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h
@@ -15,7 +15,7 @@
 #ifndef LINKINSTRUMENTMANAGER_H
 #define LINKINSTRUMENTMANAGER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QList>
 #include <QObject>
 #include <QStringList>
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp
index 63f2405b4607f3c1f2cacd88383808d008eaeb1d..ead9a7190e5fc7d25e57f1cbf3b0ccaa5df7223a 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "RealDataMaskWidget.h"
-#include "IntensityDataItem.h"
-#include "MaskEditor.h"
-#include "MaskItems.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditor.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAction>
 #include <QBoxLayout>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.h b/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.h
index 98968ef1fa332e995aad966df5fbd6bbe5dd77fd..c452af0cb8376cd1e6b775ca283d0edb9197b7c6 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.h
@@ -15,7 +15,7 @@
 #ifndef REALDATAMASKWIDGET_H
 #define REALDATAMASKWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class SessionItem;
 class MaskEditor;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp
index 514f0255401d90c8be49e697255db610c1d42631..c189bccc015041eb9f0cad55aac6438bbc5eb075 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "RealDataPresenter.h"
-#include "GUIHelpers.h"
-#include "IntensityDataProjectionsWidget.h"
-#include "IntensityDataWidget.h"
-#include "RealDataItem.h"
-#include "RealDataMaskWidget.h"
-#include "SpecularDataWidget.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QAction>
 #include <cassert>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.h b/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.h
index 05897ec08fc86d801fb3ec1338361df63f469dcc..7ec292899ba5b2d8b1455c09bba56dcc772e73e6 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.h
@@ -15,7 +15,7 @@
 #ifndef REALDATAPRESENTER_H
 #define REALDATAPRESENTER_H
 
-#include "ItemComboWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboWidget.h"
 
 class RealDataMaskWidget;
 class QAction;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
index b949a19c048a40a2152094fe6cab1246ee2c4a63..d7165198a716c4b433a4cea64797ca68161ab544 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "RealDataPropertiesWidget.h"
-#include "LinkInstrumentManager.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.h"
+#include "GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QComboBox>
 #include <QDataWidgetMapper>
 #include <QLabel>
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.h b/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.h
index f7a3b7e1b98c74e7a381c49a2a1520ef5925c3d6..a57a5b63cc43816add8dff39a981ffceee5e6819 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.h
@@ -15,7 +15,7 @@
 #ifndef REALDATAPROPERTIESWIDGET_H
 #define REALDATAPROPERTIESWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class LinkInstrumentManager;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
index c82083a1d03ac485ffb13c49c1813b94b0114078..93383b3edfd59e4de2d7d089502328a0322f4912 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
@@ -12,19 +12,19 @@
 //
 // ************************************************************************** //
 
-#include "RealDataSelectorActions.h"
-#include "AppSvc.h"
-#include "GUIHelpers.h"
-#include "ImportDataInfo.h"
-#include "ImportDataUtils.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataItem.h"
-#include "MaskItems.h"
-#include "OutputData.h"
-#include "ProjectionItems.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "Core/Instrument/OutputData.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QAction>
 #include <QApplication>
 #include <QFileDialog>
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h
index 80cfce0875944a52b4deba5fc0a0fb5fc9ca1705..910b5608c8d824da12ec4cdfd7365a614f39e0e8 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h
@@ -15,7 +15,7 @@
 #ifndef REALDATASELECTORACTIONS_H
 #define REALDATASELECTORACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class RealDataModel;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.cpp
index 7f80bf3d0cef072f75e06935246e283acb5e88b9..9d87585fb9b1cd4c1ae080218515bda222f6648d 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RealDataSelectorHBar.h"
-#include "RealDataSelectorActions.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h"
 #include <QMenu>
 #include <QToolButton>
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h
index 59d11fbfbf58cb3f69933245c17a3816ca5767fc..73ecd6d5061b86d1569d263332c9121233e6ce02 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h
@@ -15,7 +15,7 @@
 #ifndef REALDATASELECTORHBAR_H
 #define REALDATASELECTORHBAR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QToolBar>
 
 class RealDataSelectorActions;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.cpp
index f0d1b8b800ff779f95a35028fb24eb95bd3b0668..439425b9e210b5f10fd5bebcd990d3560406c9a9 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RealDataSelectorToolBar.h"
-#include "RealDataSelectorActions.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h"
 #include <QToolButton>
 
 RealDataSelectorToolBar::RealDataSelectorToolBar(RealDataSelectorActions* actions, QWidget* parent)
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h
index 1c202e322fbca346d886310979d62d739b4f8b45..5867677bbd59341db3449d4690f3033384e8a3c6 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h
@@ -15,7 +15,7 @@
 #ifndef REALDATASELECTORTOOLBAR_H
 #define REALDATASELECTORTOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 
 class RealDataSelectorActions;
 class QToolButton;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.cpp
index 741565270082e5e33d5aabbc28125615d1158497..73a733b67f210a1e7178e555738e124c82888a0f 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "RealDataSelectorWidget.h"
-#include "ItemSelectorWidget.h"
-#include "RealDataModel.h"
-#include "RealDataPropertiesWidget.h"
-#include "RealDataSelectorActions.h"
-#include "RealDataSelectorHBar.h"
-#include "RealDataSelectorToolBar.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h"
+#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h"
 #include "minisplitter.h"
 #include <QItemSelectionModel>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h
index b197455e28f816d15773f0f0b13ff0de719d9bf0..3673c3d809f997c21d401b0338153f0d88c40df5 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h
@@ -15,7 +15,7 @@
 #ifndef REALDATASELECTORWIDGET_H
 #define REALDATASELECTORWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class RealDataPropertiesWidget;
diff --git a/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp b/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp
index c8015470bc2149ffc0a23b9a191cc669b9a2ad1a..61f5e944ff08752d69efa483a6af115ea5506af7 100644
--- a/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp
+++ b/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ComboSelectorDialog.h"
-#include "DesignerHelper.h"
+#include "GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
 #include <QApplication>
 #include <QComboBox>
 #include <QLabel>
diff --git a/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.h b/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.h
index bbe1f3739b2e4255aa1af2a6cd51d4de43cd0b03..17ff25b3aff46f25d557e624fc2d3d6bbb5ff2b4 100644
--- a/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.h
+++ b/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.h
@@ -15,7 +15,7 @@
 #ifndef COMBOSELECTORDIALOG_H
 #define COMBOSELECTORDIALOG_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 #include <QString>
 
diff --git a/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp b/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp
index dc0c97ce94626c7d52d947ae615e344d94d8ba53..25f283e3eaefc5e3e543f4fcd1aad800ef487823 100644
--- a/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DetailedMessageBox.h"
-#include "DesignerHelper.h"
+#include "GUI/coregui/Views/InfoWidgets/DetailedMessageBox.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
 #include <QApplication>
 #include <QLabel>
 #include <QMessageBox>
diff --git a/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.h b/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.h
index 045a7a48dde68357db314a913163b2d5850fb04f..fbb3f5fde6be086e1878b74410decc64a7cacb3d 100644
--- a/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.h
+++ b/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.h
@@ -15,7 +15,7 @@
 #ifndef DETAILEDMESSAGEBOX_H
 #define DETAILEDMESSAGEBOX_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 #include <QString>
 
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp b/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp
index abfda8e075a12b214bbcb727950efc04db1238a0..baf7fd79cb1852e1aa48ba8ad88172cf65835977 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionDialog.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "DistributionDialog.h"
-#include "DistributionEditor.h"
-#include "SessionItem.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionDialog.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionEditor.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QHBoxLayout>
 #include <QPushButton>
 
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
index 236af314ebae4266fd009429182b4b72564d4180..8494dff496d6270a02c8daa73391481b25e15d8c 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "DistributionEditor.h"
-#include "ComponentFlatView.h"
-#include "DistributionItems.h"
-#include "DistributionWidget.h"
-#include "GroupItem.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionEditor.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentFlatView.h"
+#include "GUI/coregui/Models/DistributionItems.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionWidget.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QBoxLayout>
 
 namespace
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionEditor.h b/GUI/coregui/Views/InfoWidgets/DistributionEditor.h
index 44f415f4cc72ed4bcdc1155103e760fc78a7ede7..04772c7221ac0ab276d4c224db0738de36dfd9b1 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionEditor.h
+++ b/GUI/coregui/Views/InfoWidgets/DistributionEditor.h
@@ -15,7 +15,7 @@
 #ifndef DISTRIBUTIONEDITOR_H
 #define DISTRIBUTIONEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class QGroupBox;
 class GroupItem;
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
index 74d669fbd5d54f67bbae0312c15211e44083d785..0d9b3809411f92ff30c2114e7785254011c23ae7 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "DistributionWidget.h"
-#include "DistributionItems.h"
-#include "Distributions.h"
-#include "RealLimitsItems.h"
-#include "WarningSign.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionWidget.h"
+#include "GUI/coregui/Models/DistributionItems.h"
+#include "Core/Parametrization/Distributions.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
 #include "qcustomplot.h"
 #include <QLabel>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/InfoWidgets/GroupInfoBox.cpp b/GUI/coregui/Views/InfoWidgets/GroupInfoBox.cpp
index cd8d93e3907af19cbfc4bff276d4019b25134c75..3f71a81077f73116c61393c17137e14fa968c632 100644
--- a/GUI/coregui/Views/InfoWidgets/GroupInfoBox.cpp
+++ b/GUI/coregui/Views/InfoWidgets/GroupInfoBox.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "GroupInfoBox.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/Views/InfoWidgets/GroupInfoBox.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 #include <QApplication>
 #include <QMouseEvent>
 #include <QPainter>
diff --git a/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp b/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp
index 181f85d0dd205d03a21eae52132f285499409ded..569a68d604f6d371258e8fa04c998e68da49484f 100644
--- a/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp
+++ b/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "OverlayLabelController.h"
-#include "OverlayLabelWidget.h"
+#include "GUI/coregui/Views/InfoWidgets/OverlayLabelController.h"
+#include "GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.h"
 #include <QAbstractScrollArea>
 #include <QEvent>
 #include <QRect>
diff --git a/GUI/coregui/Views/InfoWidgets/OverlayLabelController.h b/GUI/coregui/Views/InfoWidgets/OverlayLabelController.h
index d941b79e29655299ec4ab44e18e33c8d1b22e8fe..8b30ae8b5a1bdfc1ab42a9385f2634c4f5f808e3 100644
--- a/GUI/coregui/Views/InfoWidgets/OverlayLabelController.h
+++ b/GUI/coregui/Views/InfoWidgets/OverlayLabelController.h
@@ -15,7 +15,7 @@
 #ifndef OVERLAYLABELCONTROLLER_H
 #define OVERLAYLABELCONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <QString>
 
diff --git a/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.cpp b/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.cpp
index 5f2ad739741d270391f0ad2b16ad736a0366403e..9097bbfbdc2a43b46c14bfe3386727cf09240008 100644
--- a/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "OverlayLabelWidget.h"
-#include "DesignerHelper.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QColor>
 #include <QFont>
 #include <QPainter>
diff --git a/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.h b/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.h
index a14915ffc6309b41b1d51cadad07d1bc3edc3d16..2d5612c960d6f6787bff144bcb5d92cc0a807303 100644
--- a/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.h
+++ b/GUI/coregui/Views/InfoWidgets/OverlayLabelWidget.h
@@ -15,7 +15,7 @@
 #ifndef OVERLAYLABELWIDGET_H
 #define OVERLAYLABELWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QRect>
 #include <QString>
 #include <QWidget>
diff --git a/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.cpp b/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.cpp
index 430a940ef8ba00880fa0f424baf71f5a6c5188e6..dfdf487ae024796b5b159a051f47337b35c69d2a 100644
--- a/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.cpp
+++ b/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ProjectLoadWarningDialog.h"
-#include "DesignerHelper.h"
-#include "GUIHelpers.h"
-#include "GUIMessage.h"
-#include "MessageService.h"
+#include "GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/GUIMessage.h"
+#include "GUI/coregui/utils/MessageService.h"
 #include <QBoxLayout>
 #include <QGridLayout>
 #include <QHeaderView>
diff --git a/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.h b/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.h
index 5fb412505c233309533c4264efad8b1830d7fb95..0d2fa505dc48b5eb6174a1cf4ade7a00846a377c 100644
--- a/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.h
+++ b/GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTLOADWARNINGDIALOG_H
 #define PROJECTLOADWARNINGDIALOG_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 #include <QStringList>
 
diff --git a/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp b/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp
index e83597b421583f60dcf547c890223de1edc52068..79f1bd5d8473e907e17f3e6b91375e3f20b9f592 100644
--- a/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/PySampleWidget.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "PySampleWidget.h"
-#include "DesignerHelper.h"
-#include "DomainObjectBuilder.h"
-#include "ExportToPython.h"
-#include "MultiLayer.h"
-#include "MultiLayerItem.h"
-#include "PythonSyntaxHighlighter.h"
-#include "SampleModel.h"
-#include "SessionItemUtils.h"
-#include "UpdateTimer.h"
-#include "WarningSign.h"
+#include "GUI/coregui/Views/InfoWidgets/PySampleWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/DomainObjectBuilder.h"
+#include "Core/Export/ExportToPython.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
 #include <QScrollBar>
 #include <QTextEdit>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/InfoWidgets/PySampleWidget.h b/GUI/coregui/Views/InfoWidgets/PySampleWidget.h
index 17cd03001b365036594e50ca27b76393150c65c3..f4d10473504d54e13bbb598a1cea4de8f0831180 100644
--- a/GUI/coregui/Views/InfoWidgets/PySampleWidget.h
+++ b/GUI/coregui/Views/InfoWidgets/PySampleWidget.h
@@ -15,7 +15,7 @@
 #ifndef PYSAMPLEWIDGET_H
 #define PYSAMPLEWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SampleModel;
diff --git a/GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.cpp b/GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.cpp
index 35c961af0073a5bcec7e07ef447677df4d25b10f..929a954bd94a44fdcc8e1202e75b48020fe64de7 100644
--- a/GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.cpp
+++ b/GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.cpp
@@ -35,7 +35,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OU
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
 
-#include "PythonSyntaxHighlighter.h"
+#include "GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.h"
 
 PythonSyntaxHighlighter::PythonSyntaxHighlighter(QTextDocument* parent) : QSyntaxHighlighter(parent)
 {
diff --git a/GUI/coregui/Views/InfoWidgets/WarningSign.cpp b/GUI/coregui/Views/InfoWidgets/WarningSign.cpp
index cff8c5b451f41131bd72aa06c58becb38e62b349..6e366050a89126978d88509edfb13690d873ce1e 100644
--- a/GUI/coregui/Views/InfoWidgets/WarningSign.cpp
+++ b/GUI/coregui/Views/InfoWidgets/WarningSign.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "WarningSign.h"
-#include "WarningSignWidget.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSignWidget.h"
 #include <QAbstractScrollArea>
 #include <QEvent>
 #include <QScrollBar>
diff --git a/GUI/coregui/Views/InfoWidgets/WarningSign.h b/GUI/coregui/Views/InfoWidgets/WarningSign.h
index 3cd41f48053e61cb830f9e379a8656560c68b036..cac24c4b4eb59e7b022c4729037df074d0bb15aa 100644
--- a/GUI/coregui/Views/InfoWidgets/WarningSign.h
+++ b/GUI/coregui/Views/InfoWidgets/WarningSign.h
@@ -15,7 +15,7 @@
 #ifndef WARNINGSIGN_H
 #define WARNINGSIGN_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class WarningSignWidget;
diff --git a/GUI/coregui/Views/InfoWidgets/WarningSignWidget.cpp b/GUI/coregui/Views/InfoWidgets/WarningSignWidget.cpp
index 5886b9d401b66909a8d31c57c2a28cc9bb831186..e411ba4173adca0d28342f25e36454a4b0c7fd20 100644
--- a/GUI/coregui/Views/InfoWidgets/WarningSignWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/WarningSignWidget.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "WarningSignWidget.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSignWidget.h"
 #include <QMessageBox>
 #include <QPainter>
 #include <QRect>
diff --git a/GUI/coregui/Views/InfoWidgets/WarningSignWidget.h b/GUI/coregui/Views/InfoWidgets/WarningSignWidget.h
index 78aa4c40bcabb7c03ad6ad2f48f0989536a0e649..2c315432481d14324ce812067a03fb2f71364628 100644
--- a/GUI/coregui/Views/InfoWidgets/WarningSignWidget.h
+++ b/GUI/coregui/Views/InfoWidgets/WarningSignWidget.h
@@ -15,7 +15,7 @@
 #ifndef WARNINGSIGNWIDGET_H
 #define WARNINGSIGNWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QPixmap>
 #include <QString>
 #include <QWidget>
diff --git a/GUI/coregui/Views/InstrumentView.cpp b/GUI/coregui/Views/InstrumentView.cpp
index c7508b2aad66b94103d6853ccddab26c2a61635a..72ff599682d6cc52bf07a8227983fdc80ec2fe7c 100644
--- a/GUI/coregui/Views/InstrumentView.cpp
+++ b/GUI/coregui/Views/InstrumentView.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentView.h"
-#include "ExtendedDetectorDialog.h"
-#include "InstrumentEditorWidget.h"
-#include "InstrumentModel.h"
-#include "InstrumentSelectorWidget.h"
-#include "InstrumentViewActions.h"
-#include "InstrumentViewToolBar.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/InstrumentView.h"
+#include "GUI/coregui/Views/InstrumentWidgets/ExtendedDetectorDialog.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QBoxLayout>
 
 InstrumentView::InstrumentView(MainWindow* mainWindow)
diff --git a/GUI/coregui/Views/InstrumentView.h b/GUI/coregui/Views/InstrumentView.h
index ccb476a701b8045559585e8d098722ab574f9342..374caf3a4a48a703a167ecc34cfaa0d21b540fe1 100644
--- a/GUI/coregui/Views/InstrumentView.h
+++ b/GUI/coregui/Views/InstrumentView.h
@@ -15,8 +15,8 @@
 #ifndef INSTRUMENTVIEW_H
 #define INSTRUMENTVIEW_H
 
-#include "ItemStackPresenter.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.cpp
index 95b81a64f1e7e2f83e70ae349d654ada3de6c4f8..7b1bda375f7e12232fcce959b9db190b1c207898 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "DepthProbeInstrumentEditor.h"
-#include "BeamDistributionItem.h"
-#include "BeamItems.h"
-#include "ComponentEditor.h"
-#include "DepthProbeInstrumentItem.h"
-#include "DistributionDialog.h"
-#include "LayoutUtils.h"
-#include "SpecularBeamInclinationItem.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/DepthProbeInstrumentItem.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionDialog.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QGridLayout>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.h b/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.h
index 33acefceaba5c61a7845239de2c2b48af44c52a3..815767318f39f5708b4d89c18a80e742fabdb03c 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.h
@@ -15,7 +15,7 @@
 #ifndef DEPTHPROBEINSTRUMENTEDITOR_H
 #define DEPTHPROBEINSTRUMENTEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 class QGridLayout;
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
index cb2ec75812945c23a85f186ccedd1cf9b0ed6a1b..ed889b2b740cde5904c86cac26a2b92c791163f3 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "DetectorMaskDelegate.h"
-#include "AxesItems.h"
-#include "ComboProperty.h"
-#include "DetectorItems.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataItem.h"
-#include "JobItemUtils.h"
-#include "MaskEditor.h"
-#include "MaskItems.h"
-#include "ModelPath.h"
+#include "GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditor.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/ModelPath.h"
 
 DetectorMaskDelegate::DetectorMaskDelegate(QObject* parent)
     : QObject(parent), m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel", this)),
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.h b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.h
index ae11b667b9301de8a86244993586b41c31787d1e..e51a50c27e5154f8750b9ba06000ee0332a17e21 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.h
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.h
@@ -15,7 +15,7 @@
 #ifndef DETECTORMASKDELEGATE_H
 #define DETECTORMASKDELEGATE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QModelIndex>
 #include <QObject>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.cpp
index 2a2d49500c864784846adf8a8844d5a6ba84b215..cddc44adc2c9d5dbcd0560712daf831e27bf224b 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "DetectorPresenter.h"
-#include "GUIHelpers.h"
-#include "RectangularDetectorEditor.h"
-#include "SessionItem.h"
-#include "SphericalDetectorEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.h b/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.h
index c00b50a0b0bc3024504105c5434957d946b9e56e..9bcfe48ff145be5d829cec1540a0f018d12341c1 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.h
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.h
@@ -15,7 +15,7 @@
 #ifndef DETECTORPRESENTER_H
 #define DETECTORPRESENTER_H
 
-#include "ItemComboWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboWidget.h"
 
 //! Contains stack of detector editors and the logic to show proper editor for certain type
 //! of detector item (SphericalDetectorEditor or RectangularDetectorEditor).
diff --git a/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp
index dcacdfd866202cbb3217da0ba198d908c43b58e5..40fd3bfdd077e2ded5dee8cec4ade213883d3103 100644
--- a/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "EnvironmentEditor.h"
-#include "ColumnResizer.h"
-#include "ComponentEditor.h"
-#include "GroupItem.h"
-#include "InstrumentItems.h"
-#include "LayoutUtils.h"
+#include "GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
 #include <QGridLayout>
 #include <QSpacerItem>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h b/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h
index d745b92b7961639ff9fcfd6e623e00b7c3a328b9..6fcefb2e59167f99f6d8350482a125d6840f9d59 100644
--- a/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h
@@ -15,7 +15,7 @@
 #ifndef ENVIRONMENTEDITOR_H
 #define ENVIRONMENTEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 class QGridLayout;
diff --git a/GUI/coregui/Views/InstrumentWidgets/ExtendedDetectorDialog.cpp b/GUI/coregui/Views/InstrumentWidgets/ExtendedDetectorDialog.cpp
index 7c57fd868c9e82eec4232b31a6ca5c0280f32a31..f25435433dda3ac7c5aca2a0d550553f0c3cd19e 100644
--- a/GUI/coregui/Views/InstrumentWidgets/ExtendedDetectorDialog.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/ExtendedDetectorDialog.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ExtendedDetectorDialog.h"
-#include "CustomEventFilters.h"
-#include "DetectorMaskDelegate.h"
-#include "MaskEditor.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/InstrumentWidgets/ExtendedDetectorDialog.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditor.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QPushButton>
 #include <QSettings>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
index 02f5e11df37739d20532b1cf8f749714b5056095..797739ae0e026a0a1532fefac5c470b16823ce27 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "GISASBeamEditor.h"
-#include "BeamDistributionItem.h"
-#include "BeamItems.h"
-#include "ColumnResizer.h"
-#include "ComponentEditor.h"
-#include "DistributionDialog.h"
-#include "InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionDialog.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
 #include <QGridLayout>
 #include <QGroupBox>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h
index afbc63feb2889642601738f6b6f5f5e6daca7f20..a9fb82d9e4c1967ec2a90fd319c79d34edc2dc41 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h
@@ -15,7 +15,7 @@
 #ifndef GISASBEAMEDITOR_H
 #define GISASBEAMEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 class QGridLayout;
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp
index 8b628f650e21dd7f98e70935d02c31c583aeb1c3..d5f39028469c507f6efeadac52de4c3d08bc8d9f 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "GISASDetectorEditor.h"
-#include "ComponentEditor.h"
-#include "DetectorItems.h"
-#include "DetectorPresenter.h"
-#include "GroupItem.h"
-#include "InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/DetectorPresenter.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
 #include <QVBoxLayout>
 
 GISASDetectorEditor::GISASDetectorEditor(QWidget* parent)
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h b/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h
index 025264f4952049011d5f36af53fcc5a01ace874a..9b861cc8f0d6e4e237eee8ade85afb734f91093c 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h
@@ -15,7 +15,7 @@
 #ifndef GISASDETECTOREDITOR_H
 #define GISASDETECTOREDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 class DetectorPresenter;
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
index 2d1c9c92e0d3483d09b28a06e12dff9ca073b6b2..583336089f36b9eea77f477b5c00cddfcd8bfce8 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "GISASInstrumentEditor.h"
-#include "ColumnResizer.h"
-#include "EnvironmentEditor.h"
-#include "GISASBeamEditor.h"
-#include "GISASDetectorEditor.h"
-#include "InstrumentItems.h"
-#include "PolarizationAnalysisEditor.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QVBoxLayout>
 
 GISASInstrumentEditor::GISASInstrumentEditor(QWidget* parent)
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.h b/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.h
index fa1535143715e82c0d7e0aa140bea3233c999b07..15796ea1d168e2715bd56169e0119b70d9b8690b 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.h
@@ -15,7 +15,7 @@
 #ifndef GISASINSTRUMENTEDITOR_H
 #define GISASINSTRUMENTEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class GISASInstrumentItem;
 class GISASBeamEditor;
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
index 6c07d1d2beb6d7eaf93c295c0b90582b13c8a712..57772d94ecf6f9db49913df183f268b6fa867a38 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentEditorWidget.h"
-#include "AdjustingScrollArea.h"
-#include "DetectorItems.h"
-#include "InstrumentItems.h"
-#include "InstrumentPresenter.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/AdjustingScrollArea.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.h"
 #include <QBoxLayout>
 #include <QGroupBox>
 #include <QLabel>
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h
index 29e5bc41a75a851b6f8179200e6891e749f7c882..5928b363d792b7e79ebb0b3a8e4c220f5655c574 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentEditorWidget.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTEDITORWIDGET_H
 #define INSTRUMENTEDITORWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.cpp
index 027e315e5a5b29fcf2d22f7750fba5799b01b16a..dfbee34ac2c6bef722757988e7ec0b7349c67a8c 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentPresenter.h"
-#include "DepthProbeInstrumentEditor.h"
-#include "GISASInstrumentEditor.h"
-#include "GUIHelpers.h"
-#include "OffSpecInstrumentEditor.h"
-#include "SessionItem.h"
-#include "SpecularInstrumentEditor.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.h"
+#include "GUI/coregui/Views/InstrumentWidgets/DepthProbeInstrumentEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.h
index 4b6faf391c2881ea757dc9542a9c63565f3ff0b0..0430fd3dd67b004442e8bf2b3fd69f3c6681b793 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentPresenter.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTPRESENTER_H
 #define INSTRUMENTPRESENTER_H
 
-#include "ItemComboWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboWidget.h"
 
 //! Contains stack of instrument editors and the logic to show proper editor for certain type
 //! of instrument (GISAS, OffSpec and Specular). Main component of InstrumentEditorWidget.
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp
index 5f1329785fedf5bfe235d651eed3bb0b893541ef..a1041129c390080c6d99158bf6d240875ece10c4 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentSelectorWidget.h"
-#include "InstrumentModel.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QAction>
 #include <QListView>
 #include <QMenu>
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.h
index 812a980dccc678f7ac9e4d1a6a8b95fe5f1e5b1b..81ac8ac9b6dcfa5f7a0a18d4c90983c876a734d2 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentSelectorWidget.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTSELECTORWIDGET_H
 #define INSTRUMENTSELECTORWIDGET_H
 
-#include "ItemSelectorWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h"
 
 class InstrumentModel;
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp
index a86a17ad60a20b14c2e84d2d8071ae6c3f3129ab..0d30f430c59365585f66fb163670e4a5a81553b6 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentViewActions.h"
-#include "GroupItem.h"
-#include "InstrumentItems.h"
-#include "ModelUtils.h"
-#include "PointwiseAxisItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAction>
 #include <QDebug>
 #include <QItemSelectionModel>
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h
index d0b959dd07aa0bd39ae8fb11388e437b0796521a..8e126e475e7eed9e8dffe98b3f72f7d429d03823 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTVIEWACTIONS_H
 #define INSTRUMENTVIEWACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QObject>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.cpp
index 61945e87bad6716ddd2c62d47b349234c985d60b..d7a7d10030cf914697f7f58259359fc9ac99b49d 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "InstrumentViewToolBar.h"
-#include "InstrumentViewActions.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.h"
+#include "GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.h"
 #include <QMenu>
 #include <QToolButton>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.h b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.h
index 04fe7736f455ae904bb9e1400d790f99ab9bc01a..a8b4a5907dd5b70f9da5fb31aa0cca4cb2aaf704 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.h
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewToolBar.h
@@ -15,7 +15,7 @@
 #ifndef INSTRUMENTVIEWTOOLBAR_H
 #define INSTRUMENTVIEWTOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 #include <QList>
 
 class QAction;
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp
index 9f74b16729ddbbc9409b60d465025b3ce2d5b0e9..1ae14df69b1c43e752e978fe144852674c436bc7 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "OffSpecBeamEditor.h"
-#include "BeamDistributionItem.h"
-#include "BeamItems.h"
-#include "ColumnResizer.h"
-#include "ComponentEditor.h"
-#include "DistributionDialog.h"
-#include "InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionDialog.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
 #include <QGridLayout>
 #include <QGroupBox>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.h b/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.h
index 3a3ba9d5b3e25679c7caf67f4cc13aee0e3ed852..a8e2147595a5c7ec563e6093c6e897a7c62cae6b 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.h
@@ -15,7 +15,7 @@
 #ifndef OFFSPECBEAMEDITOR_H
 #define OFFSPECBEAMEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 class QGridLayout;
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp
index 61436e3ccf759177d84b6358f0bc35a5368cc572..d4adf16385272973775597d554ff12dc0c4eafd0 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "OffSpecInstrumentEditor.h"
-#include "ColumnResizer.h"
-#include "EnvironmentEditor.h"
-#include "GISASDetectorEditor.h"
-#include "InstrumentItems.h"
-#include "OffSpecBeamEditor.h"
-#include "PolarizationAnalysisEditor.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QVBoxLayout>
 
 OffSpecInstrumentEditor::OffSpecInstrumentEditor(QWidget* parent)
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.h b/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.h
index f32e4ab54e61df51cd51d2050bbfd20620b2f91b..ca6becab0d7fbf8c289d09ffc2349c8000afbaed 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.h
@@ -15,7 +15,7 @@
 #ifndef OFFSPECINSTRUMENTEDITOR_H
 #define OFFSPECINSTRUMENTEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class OffSpecInstrumentItem;
 class OffSpecBeamEditor;
diff --git a/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
index c58f2ab0dcd049b285f40c8ed3c50fa6bc510e18..977daa79d90d44b7f489fb2b5ead7a11fd50be43 100644
--- a/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "PolarizationAnalysisEditor.h"
-#include "BeamItems.h"
-#include "ColumnResizer.h"
-#include "ComponentEditor.h"
-#include "DetectorItems.h"
-#include "InstrumentItems.h"
-#include "LayoutUtils.h"
+#include "GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
 #include <QGridLayout>
 #include <QSpacerItem>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h b/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h
index 06fd906867823d1bda8a953b1e5cab18f7f5d4c2..43bf92f48187203b5e5b22cad917e7334c9943e1 100644
--- a/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h
@@ -15,7 +15,7 @@
 #ifndef POLARIZATIONANALYSISEDITOR_H
 #define POLARIZATIONANALYSISEDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 class GISASInstrumentItem;
diff --git a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
index cca63558643c7837ede3eb0cf0052f469f022b11..b6614b2e9f64998e687b971567a60421718a5963 100644
--- a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "RectangularDetectorEditor.h"
-#include "ComboProperty.h"
-#include "ComponentEditor.h"
-#include "RectangularDetectorItem.h"
+#include "GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
 #include <QGridLayout>
 
 RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent)
diff --git a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.h b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.h
index 10e6acca175a05a993dd74c09547ec031d4a82da..b64207f56e71c77b86f62913a9d46806055f6bc8 100644
--- a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.h
@@ -15,7 +15,7 @@
 #ifndef RECTANGULARDETECTOREDITOR_H
 #define RECTANGULARDETECTOREDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 class RectangularDetectorItem;
 class ComponentEditor;
 class QGridLayout;
diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp
index 2c365681a0d71ca9ad079b249936bdbe20b0ab75..b7bf1f6e26041a0cb963fe28f90c7e9d2f96539f 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "SpecularBeamEditor.h"
-#include "BeamDistributionItem.h"
-#include "BeamItems.h"
-#include "ColumnResizer.h"
-#include "ComponentEditor.h"
-#include "DistributionDialog.h"
-#include "InstrumentItems.h"
-#include "LayoutUtils.h"
-#include "SpecularBeamInclinationItem.h"
+#include "GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/InfoWidgets/DistributionDialog.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
 #include <QGridLayout>
 #include <QGroupBox>
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h
index 7d8d34cd87348142878956d3456f61e0a9f0dd72..2f4ef84aa000ccb7da7f4eb0585436b027eda9a3 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARBEAMEDITOR_H_
 #define SPECULARBEAMEDITOR_H_
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class BeamItem;
 class ColumnResizer;
diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp
index b83ca53dbfe412b4fa8e899dc5ee11ca0e77bd35..cc20e356ed8ed071cf84c872837c5efa21f48199 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SpecularInstrumentEditor.h"
-#include "ColumnResizer.h"
-#include "EnvironmentEditor.h"
-#include "InstrumentItems.h"
-#include "PolarizationAnalysisEditor.h"
-#include "SpecularBeamEditor.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.h"
+#include "GUI/coregui/Views/CommonWidgets/ColumnResizer.h"
+#include "GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.h"
+#include "GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QVBoxLayout>
 
 SpecularInstrumentEditor::SpecularInstrumentEditor(QWidget* parent)
diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.h b/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.h
index 79870e86e0b26d2cad94226ccadb33f3efbf728a..4e13c8a3882e2afd8ba8b5dbc1b98b4ee2ace2eb 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARINSTRUMENTEDITOR_H_
 #define SPECULARINSTRUMENTEDITOR_H_
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class SpecularInstrumentItem;
 class SpecularBeamEditor;
diff --git a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp
index 8a2d8ed7f124d3520fd4685be21f57d07c509e52..bf06bac62a5872ea04e66d3884be24b489c5dfe1 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SphericalDetectorEditor.h"
-#include "ComponentEditor.h"
-#include "SphericalDetectorItem.h"
+#include "GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/SphericalDetectorItem.h"
 #include <QGridLayout>
 
 namespace
diff --git a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.h b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.h
index a944685e13fd141eba0847314c5dbb8d07474630..57a71a92ad33b1eff2c4d6856125875862cf0754 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.h
+++ b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.h
@@ -15,7 +15,7 @@
 #ifndef SPHERICALDETECTOREDITOR_H
 #define SPHERICALDETECTOREDITOR_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 class SphericalDetectorItem;
 class ComponentEditor;
 class QGridLayout;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
index 127291d4363d84788f47c6af4e915aa7cf2aa181..528ccd83c4e3fc2beb0017660f99d6c9e48609fa 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "ColorMap.h"
-#include "AxesItems.h"
-#include "ColorMapUtils.h"
-#include "IntensityDataItem.h"
-#include "MathConstants.h"
-#include "PlotEventInfo.h"
-#include "UpdateTimer.h"
-#include "StyleUtils.h"
-#include "plot_constants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "Core/Basics/MathConstants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/Views/FitWidgets/plot_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.h b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.h
index 46602e8d158a0342b6632fb6f3d2721b500faab9..e2259a6c77bae5513fc918e9451d265b80cc158d 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.h
@@ -15,7 +15,7 @@
 #ifndef COLORMAP_H
 #define COLORMAP_H
 
-#include "ScientificPlot.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
 #include "qcustomplot.h"
 #include <QMap>
 #include <QPoint>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.cpp
index 1ae5f0cf1423918bfa3f34552db299fb15220f47..57673bdb30988da7c063617f9c298db37c7056b9 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ColorMapCanvas.h"
-#include "ColorMap.h"
-#include "FontScalingEvent.h"
-#include "IntensityDataItem.h"
-#include "PlotStatusLabel.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
 #include <QLabel>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h b/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h
index 7fa79ba59a775275f6204002c09b13cd3a98477d..1a812d57d6d580048229af66c85a205945077b6c 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h
@@ -15,7 +15,7 @@
 #ifndef COLORMAPCANVAS_H
 #define COLORMAPCANVAS_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ColorMap;
 class FontScalingEvent;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp
index c908d22414be32d8be5f663efd026350869426a7..0057811472db01cbb842c1c22b36d37369cd3703 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ColorMapUtils.h"
-#include "ColorMap.h"
-#include "GUIHelpers.h"
-#include "IntensityDataItem.h"
-#include "item_constants.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/item_constants.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 using gradient_map_t = QMap<QString, QCPColorGradient::GradientPreset>;
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h b/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h
index ccbaebb3dbe20819b470abd02d25f974bd83c554..eed9ab40ba0def960e3db5cdb78160a482166d6b 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h
@@ -15,7 +15,7 @@
 #ifndef COLORMAPUTILS_H
 #define COLORMAPUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include "qcustomplot.h"
 #include <QMap>
 #include <QMargins>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp b/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp
index 2e4b3b9c5c033b9d7890c9c2dd95e4fb1ff7df25..cb83e9090e44ea65f370bf89e549b6f0300e7774 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FontScalingEvent.h"
-#include "ColorMap.h"
-#include "ScientificPlot.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
 #include "qcustomplot.h"
 #include <QResizeEvent>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h b/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h
index e31362352efb50f20725b437a68123fce59dc28b..844609dc8dc3f713eff35c19944d6211283e569f 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h
@@ -15,7 +15,7 @@
 #ifndef FONTSCALINGEVENT_H
 #define FONTSCALINGEVENT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFont>
 #include <QMap>
 #include <QObject>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
index df84d92ad0f07cd4e014c4a0d0eb7119ed3f017e..71726ed43f072bdbd9ab4a246d65600dc897c059 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataCanvas.h"
-#include "AppSvc.h"
-#include "ColorMap.h"
-#include "ColorMapCanvas.h"
-#include "ComboProperty.h"
-#include "IntensityDataFFTPresenter.h"
-#include "IntensityDataItem.h"
-#include "SavePlotAssistant.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapCanvas.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QAction>
 #include <QMouseEvent>
 #include <QSettings>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.h b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.h
index e356ffabed7dc362811759fe5ce71f1832b2f0db..323bf41b2f68d6399b434a5db425a4c29bba9004 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.h
@@ -15,8 +15,8 @@
 #ifndef INTENSITYDATACANVAS_H
 #define INTENSITYDATACANVAS_H
 
-#include "OutputData.h"
-#include "SessionItemWidget.h"
+#include "Core/Instrument/OutputData.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <memory>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp
index ea9035dd2e91ebb1b9ace968fa0b86d51eb2e070..9a332432c344055a8be9e39ec96000d082bea152 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataFFTPresenter.h"
-#include "GUIHelpers.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAction>
 #include <QApplication>
 #include <QWidget>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h
index 7fff3b83bd3d30d2fc42d2d4d5c063758392cd90..0afd53f3072562f06c69624fd60f83d0229574da 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAFFTPRESENTER_H
 #define INTENSITYDATAFFTPRESENTER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class SessionModel;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp
index 0535c62bb5dd25469371d2eb27f429cbd8535c48..d4545a348972ce4ebed3035518ebe070ee048aa1 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataProjectionsWidget.h"
-#include "DataItemUtils.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "ProjectionItems.h"
-#include "ProjectionsEditor.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h"
+#include "GUI/coregui/Models/DataItemUtils.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditor.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QVBoxLayout>
 
 IntensityDataProjectionsWidget::IntensityDataProjectionsWidget(QWidget* parent)
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h
index 01eb82b17e8a9dfa79e0c1c9111856b21a7f3fec..09444228d2684269dd0061c35018173a9c784034 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAPROJECTIONSWIDGET_H
 #define INTENSITYDATAPROJECTIONSWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ProjectionsEditor;
 class IntensityDataItem;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.cpp
index 2f9c4ae242b6718f973339130ff3899dae2c5aa5..4ccf82087565f3291aeece543e6bf682290256c0 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataPropertyWidget.h"
-#include "ComponentEditor.h"
-#include "IntensityDataItem.h"
-#include "JobModel.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QAction>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h
index be509e67ae2191e5163bf2aca727fb02cefa4824..ab2e1836edef5b23df0e148f11eed065bac0098a 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAPROPERTYWIDGET_H
 #define INTENSITYDATAPROPERTYWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class IntensityDataItem;
 class ComponentEditor;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.cpp
index f4a543b5a466c3c4788afe72d3c4401d4f8e22eb..cf8ee2bd3471ee29e7aa8e8665e6a31483a52c13 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataWidget.h"
-#include "DataItemUtils.h"
-#include "IntensityDataCanvas.h"
-#include "IntensityDataFFTPresenter.h"
-#include "IntensityDataItem.h"
-#include "IntensityDataPropertyWidget.h"
-#include "JobItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h"
+#include "GUI/coregui/Models/DataItemUtils.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
 #include <QBoxLayout>
 #include <QMenu>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h
index e0fd96544441793093fcfa64c8a83b802f4ed5a2..e9d12baf911565a73265f7d358218114085035f2 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h
@@ -15,7 +15,7 @@
 #ifndef INTENSITYDATAWIDGET_H
 #define INTENSITYDATAWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <memory>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp b/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp
index 90d25a8de186900a809b3cc1d99c5180d8d8cf66..4f654ee37a06ef132978db2beb7b13a086ad3f49 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "Plot1D.h"
-#include "AxesItems.h"
-#include "ColorMapUtils.h"
-#include "Data1DViewItem.h"
-#include "DataItem.h"
-#include "DataProperties.h"
-#include "DataPropertyContainer.h"
-#include "MathConstants.h"
-#include "PlotEventInfo.h"
-#include "UpdateTimer.h"
-#include "plot_constants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/Plot1D.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DataProperties.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "Core/Basics/MathConstants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "GUI/coregui/Views/FitWidgets/plot_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/IntensityDataWidgets/Plot1D.h b/GUI/coregui/Views/IntensityDataWidgets/Plot1D.h
index b9df1970ac0ccabbae0eb49d3581bd156cb5e2b4..299ff83487491409001a338435eab2c7cf4daa77 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/Plot1D.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/Plot1D.h
@@ -15,7 +15,7 @@
 #ifndef PLOT1D_H
 #define PLOT1D_H
 
-#include "ScientificPlot.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
 #include "qcustomplot.h"
 
 class BasicAxisItem;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.cpp b/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.cpp
index 63d58c9d0612c33797918f56c3e3fb0287953159..fbb529a3c6f69af38e26346aeb5a49d270e16bbc 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "PlotEventInfo.h"
-#include "GUIHelpers.h"
-#include "PythonFormatting.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Export/PythonFormatting.h"
 
 PlotEventInfo::PlotEventInfo(PLOT_TYPE type)
     : m_in_axes_range(false), m_log_valued_axis(false), m_x(0.0), m_y(0.0), m_value(0.0), m_nx(0),
diff --git a/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h b/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h
index dafb56cd7752049e6310f14510df38a67ec3e792..f9829187953c3f010a65128fc0e81f4abb1752c1 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h
@@ -15,8 +15,8 @@
 #ifndef PLOTEVENTINFO_H
 #define PLOTEVENTINFO_H
 
-#include "ScientificPlot.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 class ColorMap;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.cpp b/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.cpp
index b43f86e9932d97320d513df719009d77ecf637a4..1489207fcab768017023532f8545a23615ffabe4 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PlotStatusLabel.h"
-#include "ScientificPlot.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
 
 PlotStatusLabel::PlotStatusLabel(ScientificPlot* plot, QWidget* parent) : StatusLabel(parent)
 {
diff --git a/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h b/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h
index ae173d4132448cce22ad871ce84e9ab7523ba079..2c0e50c7545cae3c5997a35edc92a57cf42ec2ff 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h
@@ -15,7 +15,7 @@
 #ifndef PLOTSTATUSLABEL_H
 #define PLOTSTATUSLABEL_H
 
-#include "StatusLabel.h"
+#include "GUI/coregui/Views/CommonWidgets/StatusLabel.h"
 #include <QList>
 
 class ScientificPlot;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp
index faa1a65fb413ab8960dbc7fbd70c9ed6e227968a..73920d1af1ccff4206e42955abcd5a5346e093e8 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsPlot.h"
-#include "AxesItems.h"
-#include "ColorMapUtils.h"
-#include "Histogram1D.h"
-#include "Histogram2D.h"
-#include "IntensityDataItem.h"
-#include "MaskItems.h"
-#include "ModelMapper.h"
-#include "ProjectionItems.h"
-#include "SessionItem.h"
-#include "plot_constants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/ModelMapper.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/FitWidgets/plot_constants.h"
 #include "qcustomplot.h"
 
 ProjectionsPlot::ProjectionsPlot(const QString& projectionType, QWidget* parent)
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.h b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.h
index d303bc6447e0d8047d453dea30dd94ded67a593c..3f0b878b382404d8c31aae516ed8920b93703ad9 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTIONSPLOT_H
 #define PROJECTIONSPLOT_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include "qcustomplot.h"
 #include <QMap>
 #include <memory>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.cpp b/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.cpp
index f562964a19899fd5f402f60ce361abac8e86f260..6989c1bf5679d89f27345d04e017cc22599b605a 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PropertyRepeater.h"
-#include "IntensityDataItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
 
 PropertyRepeater::PropertyRepeater(QObject* parent, bool repeat_child_properties)
     : QObject(parent), m_block_repeater(false), m_repeat_child_properties(repeat_child_properties)
diff --git a/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h b/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h
index b0d064d55c190d251d3c690b338c4cf0d38ee779..d4e080009878caf2e734873f280d9aa3f14b7d2c 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h
@@ -15,7 +15,7 @@
 #ifndef PROPERTYREPEATER_H
 #define PROPERTYREPEATER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QObject>
 #include <QVector>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp b/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp
index 9409cadb7c67a3cede0fb4d45f0c4795ebea059a..ff0099c59d09cde129f146ad102788c20d729c0d 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SavePlotAssistant.h"
-#include "ColorMap.h"
-#include "IntensityDataIOFactory.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
 #include <QFileDialog>
 #include <QMessageBox>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h b/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h
index 4f1eae66abb45bc7575460f71c381e118ceca7e3..b61d244a96d69f494da64a2493a40dfabc5194b6 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h
@@ -15,7 +15,7 @@
 #ifndef SAVEPLOTASSISTANT_H
 #define SAVEPLOTASSISTANT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <QVector>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp
index 399ed7197dd6bdc7dd88c31a31d3de77d4f7da69..3efe10e647fe73dcc683f9412d5fd827e5723f57 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "SaveProjectionsAssistant.h"
-#include "GUIHelpers.h"
-#include "Histogram1D.h"
-#include "Histogram2D.h"
-#include "IntensityDataItem.h"
-#include "MaskItems.h"
-#include "ProjectUtils.h"
-#include "ProjectionItems.h"
-#include "PythonFormatting.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
+#include "Core/Export/PythonFormatting.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QFileDialog>
 #include <QTextStream>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.h b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.h
index d4305f9effb1eb3fe6c3197399b3883dd6821a3b..166286e12c49e68528511572a999245459e51d0d 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.h
@@ -15,7 +15,7 @@
 #ifndef SAVEPROJECTIONSASSISTANT_H
 #define SAVEPROJECTIONSASSISTANT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <QVector>
 #include <memory>
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.cpp
index 1cb3a19011be921751cca874ad56c3afe40dce7c..d20042eeb529901cfd0ee84d5721117cc1f6f176 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ScientificPlot.h"
-#include "ScientificPlotEvent.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h"
 #include <qcustomplot.h>
 
 ScientificPlot::ScientificPlot(QWidget* parent, PLOT_TYPE plot_type)
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h
index 54b86649fa28a7d3f3bc4fb9d3bac51858bf6f06..340f01082e0071005ce96d20e164bef1345a440f 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h
@@ -15,7 +15,7 @@
 #ifndef SCIENTIFICPLOT_H
 #define SCIENTIFICPLOT_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 #include <memory>
 
 class PlotEventInfo;
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.cpp b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.cpp
index 9583976f7bb99011bd8c2c628e3c0b6d5bc8b8b4..9a43e6567f7fec4d902fa4d6557d4f2412cdc769 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ScientificPlotEvent.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h"
 #include <QMouseEvent>
 #include <qcustomplot.h>
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h
index 011fbced461183e182420da128ea029467281360..47c2ee05e37f4f26d0878d19504d1712d165b0fa 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h
+++ b/GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h
@@ -15,8 +15,8 @@
 #ifndef SCIENTIFICPLOTEVENT_H
 #define SCIENTIFICPLOTEVENT_H
 
-#include "PlotEventInfo.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <memory>
 
diff --git a/GUI/coregui/Views/JobView.cpp b/GUI/coregui/Views/JobView.cpp
index 329635d1a1fa83f42af567552c7cb9eb4cfba8fd..afa7afba99459d5df7a22fec57993d9d65bcb9ad 100644
--- a/GUI/coregui/Views/JobView.cpp
+++ b/GUI/coregui/Views/JobView.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "JobView.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "JobOutputDataWidget.h"
-#include "JobProgressAssistant.h"
-#include "JobSelectorWidget.h"
-#include "JobViewDocks.h"
-#include "JobViewFlags.h"
-#include "JobViewStatusBar.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/JobView.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobProgressAssistant.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewDocks.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewFlags.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewStatusBar.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QMenu>
 
 JobView::JobView(MainWindow* mainWindow)
diff --git a/GUI/coregui/Views/JobView.h b/GUI/coregui/Views/JobView.h
index 172156025d6aefdc1529dde57652549a1bd2ee90..8f3e598898dac3afa2cbe186a02b7fcdb3c21800 100644
--- a/GUI/coregui/Views/JobView.h
+++ b/GUI/coregui/Views/JobView.h
@@ -15,7 +15,7 @@
 #ifndef JOBVIEW_H
 #define JOBVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include "fancymainwindow.h"
 
 class MainWindow;
diff --git a/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp b/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp
index 819153439572a9f5ed2d04084f93f0bd719ab891..6d0d4e30225a0e7d45a646e4ffc6f84fddc8e88f 100644
--- a/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "JobListViewDelegate.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/Views/JobWidgets/JobListViewDelegate.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 #include "progressbar.h"
 #include <QApplication>
 #include <QMouseEvent>
diff --git a/GUI/coregui/Views/JobWidgets/JobListViewDelegate.h b/GUI/coregui/Views/JobWidgets/JobListViewDelegate.h
index 4a89cfe81a8735e5fa152d60e841f0018ad50123..c28b691e62c4bdaf6ad6b70d6c0a9483d57b1c50 100644
--- a/GUI/coregui/Views/JobWidgets/JobListViewDelegate.h
+++ b/GUI/coregui/Views/JobWidgets/JobListViewDelegate.h
@@ -15,7 +15,7 @@
 #ifndef JOBLISTVIEWDELEGATE_H
 #define JOBLISTVIEWDELEGATE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QItemDelegate>
 #include <QMap>
 #include <QRect>
diff --git a/GUI/coregui/Views/JobWidgets/JobListWidget.cpp b/GUI/coregui/Views/JobWidgets/JobListWidget.cpp
index a265a9cfcdb892a54cf3ab8171ff87a5c7365cd4..219027c47be60b4839bfc58341bcea1a614eee2e 100644
--- a/GUI/coregui/Views/JobWidgets/JobListWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobListWidget.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "JobListWidget.h"
-#include "ItemSelectorWidget.h"
-#include "JobItem.h"
-#include "JobListViewDelegate.h"
-#include "JobModel.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/JobWidgets/JobListWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/JobWidgets/JobListViewDelegate.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QItemSelectionModel>
 #include <QListView>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/JobWidgets/JobListWidget.h b/GUI/coregui/Views/JobWidgets/JobListWidget.h
index c382efafe610531d3cfb7a91aae9c474718b82c6..e58d91064de9c01301fa51353e76f884031e192c 100644
--- a/GUI/coregui/Views/JobWidgets/JobListWidget.h
+++ b/GUI/coregui/Views/JobWidgets/JobListWidget.h
@@ -15,7 +15,7 @@
 #ifndef JOBLISTWIDGET_H
 #define JOBLISTWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QModelIndexList>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/JobWidgets/JobMessagePanel.cpp b/GUI/coregui/Views/JobWidgets/JobMessagePanel.cpp
index 2557bcc2e0fd9d44d5f37dd38488d82bc8a094a9..9db7357b8718f9ffdc74a355650886079575ee1f 100644
--- a/GUI/coregui/Views/JobWidgets/JobMessagePanel.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobMessagePanel.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "JobMessagePanel.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/JobWidgets/JobMessagePanel.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QScrollBar>
 #include <QStackedWidget>
 #include <QTextEdit>
diff --git a/GUI/coregui/Views/JobWidgets/JobMessagePanel.h b/GUI/coregui/Views/JobWidgets/JobMessagePanel.h
index 939109d49e5a917db7180694549490a00c2612d7..f5b9e6cefc295764076c09e4201b45e56669ab92 100644
--- a/GUI/coregui/Views/JobWidgets/JobMessagePanel.h
+++ b/GUI/coregui/Views/JobWidgets/JobMessagePanel.h
@@ -15,7 +15,7 @@
 #ifndef JOBMESSAGEPANEL_H
 #define JOBMESSAGEPANEL_H
 
-#include "InfoPanel.h"
+#include "GUI/coregui/Views/CommonWidgets/InfoPanel.h"
 #include <QColor>
 
 class QTextEdit;
diff --git a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp
index 86eba2e09872258deac4efb8c0470d7d395c0d4f..196143bd4b979b03bf8c297f0043597b964aad24 100644
--- a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "JobOutputDataWidget.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "JobResultsPresenter.h"
-#include "JobViewFlags.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/JobResultsPresenter.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewFlags.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QVBoxLayout>
 
 namespace
diff --git a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h
index 155f8d943ae6e39f385314f50947d24c0a2ca10c..16695ad308c6b3efd20bf564d26e86d4cfb4ca92 100644
--- a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h
+++ b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h
@@ -15,7 +15,7 @@
 #ifndef JOBOUTPUTDATAWIDGET_H
 #define JOBOUTPUTDATAWIDGET_H
 
-#include "ItemStackPresenter.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h"
 
 class JobResultsPresenter;
 class JobModel;
diff --git a/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp b/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp
index ce14e9bce96c7d34f4656344ad68719d5215d0ff..3dc4afe79b3fe0025308aff224483d9ad394abcc 100644
--- a/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "JobProgressAssistant.h"
-#include "JobModel.h"
-#include "JobQueueData.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/JobWidgets/JobProgressAssistant.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/JobQueueData.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include "progressbar.h"
 
 JobProgressAssistant::JobProgressAssistant(MainWindow* mainWindow)
diff --git a/GUI/coregui/Views/JobWidgets/JobProgressAssistant.h b/GUI/coregui/Views/JobWidgets/JobProgressAssistant.h
index e78ac51d49a70b7eee30a740ed314b0eeca6dee5..860c632366eb5b4a11b84964a84ed2607957bcbd 100644
--- a/GUI/coregui/Views/JobWidgets/JobProgressAssistant.h
+++ b/GUI/coregui/Views/JobWidgets/JobProgressAssistant.h
@@ -15,7 +15,7 @@
 #ifndef JOBPROGRESSASSISTANT_H
 #define JOBPROGRESSASSISTANT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.cpp b/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.cpp
index 482ecb6aa8cb181d49479bdf41578232529a38c3..64d333e10a623d62ae6012c0da3a362e537cea69 100644
--- a/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "JobPropertiesWidget.h"
-#include "ComponentEditor.h"
-#include "JobItem.h"
-#include "mainwindow_constants.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/JobWidgets/JobPropertiesWidget.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QTabBar>
 #include <QTabWidget>
 #include <QTextEdit>
diff --git a/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.h b/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.h
index 252cc691376b2d3ce7218c1860f961d8989935ad..2cf249931c1bd4dd43349e285fa559683f66ff1d 100644
--- a/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.h
+++ b/GUI/coregui/Views/JobWidgets/JobPropertiesWidget.h
@@ -15,7 +15,7 @@
 #ifndef JOBPROPERTIESWIDGET_H
 #define JOBPROPERTIESWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class JobItem;
 class QTextEdit;
diff --git a/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.cpp b/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.cpp
index a1aaef9fe315a8a9ecf7869cae7186a5f7ce353d..14ae2361f12c4d4fa73b6a61036f8459a70c3b0b 100644
--- a/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "JobRealTimeToolBar.h"
+#include "GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.h"
 #include <QToolButton>
 
 JobRealTimeToolBar::JobRealTimeToolBar(QWidget* parent)
diff --git a/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.h b/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.h
index 2d65e7de2a843f29b4a687df187bea469ffb0cfc..b0a0d2a5ee77b922a64857744314466455a5c723 100644
--- a/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.h
+++ b/GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.h
@@ -15,7 +15,7 @@
 #ifndef JOBREALTIMETOOLBAR_H
 #define JOBREALTIMETOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 
 class QToolButton;
 
diff --git a/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp b/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp
index 94245b24827f728151d93cc33105fccb973e52ad..d292a5e9909b3e27b2121274cfc98342962adf3c 100644
--- a/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "JobRealTimeWidget.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "ParameterTuningWidget.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QVBoxLayout>
 
 namespace
diff --git a/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h b/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h
index b0744d60b034c25285d6bde6c2b82c4fa75fbf58..15d34cca56664d4808f0e2d5364a2e5986a88556 100644
--- a/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h
+++ b/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h
@@ -15,7 +15,7 @@
 #ifndef JOBREALTIMEWIDGET_H
 #define JOBREALTIMEWIDGET_H
 
-#include "ItemStackPresenter.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h"
 
 class JobModel;
 class JobItem;
diff --git a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp
index 0a84b9ce2fb89bea06e6cff918ce318e4d28f812..6b4ebd86c82f9e2b71f2f6d4d4d38efb4791d502 100644
--- a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "JobResultsPresenter.h"
-#include "FitComparisonWidget.h"
-#include "FitComparisonWidget1D.h"
-#include "GUIHelpers.h"
-#include "IntensityDataProjectionsWidget.h"
-#include "IntensityDataWidget.h"
-#include "JobItem.h"
-#include "SpecularDataWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobResultsPresenter.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonWidget.h"
+#include "GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h
index bf48e84140d63b2f4d3a698b8200da3a8c7e1874..c21e3d4aa9038c57673de54e3ab98faf0cffd884 100644
--- a/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h
+++ b/GUI/coregui/Views/JobWidgets/JobResultsPresenter.h
@@ -15,8 +15,8 @@
 #ifndef JOBRESULTSPRESENTER_H
 #define JOBRESULTSPRESENTER_H
 
-#include "ItemComboWidget.h"
-#include "JobViewFlags.h"
+#include "GUI/coregui/Views/CommonWidgets/ItemComboWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewFlags.h"
 
 //! Presents results of job (JobItem) using stack of different widgets and combo box in the
 //! right top corner of JobView, to switch between widgets.
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp
index b98614dbe0afbf4a86254a13286f349ff21947bd..f7f7930d8c20106f7bfa84db16044c892eb3374f 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "JobSelectorActions.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "StyledToolBar.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorActions.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 #include <QAction>
 #include <QItemSelectionModel>
 #include <QMenu>
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorActions.h b/GUI/coregui/Views/JobWidgets/JobSelectorActions.h
index 0022b16f95921efe634de8f462b051d8eaf8a915..c3b2bb73419350d88d1c1c002685273a653847f3 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorActions.h
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorActions.h
@@ -15,7 +15,7 @@
 #ifndef JOBSELECTORACTIONS_H
 #define JOBSELECTORACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QModelIndex>
 #include <QObject>
 
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.cpp
index c78591346681f5611c9f145a5367e069b1316752..60c28992ae3cad4dd1f30e84c1cabfffde506929 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "JobSelectorToolBar.h"
-#include "JobSelectorActions.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorToolBar.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorActions.h"
 #include <QToolButton>
 
 JobSelectorToolBar::JobSelectorToolBar(JobSelectorActions* actions, QWidget* parent)
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.h b/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.h
index 60f4ddc4322c635d9c37c79a56be03755e381a1d..f992fc25d40a16b9e11931d36aa900602aacc950 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.h
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorToolBar.h
@@ -15,7 +15,7 @@
 #ifndef JOBSELECTORTOOLBAR_H
 #define JOBSELECTORTOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 
 class QAction;
 class QToolButton;
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
index 1afbeb226ca3d7cb7db5ed018d11abe080863458..95941af60516db8313dadc6b1106da37a01879f9 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "JobSelectorWidget.h"
-#include "JobItem.h"
-#include "JobListWidget.h"
-#include "JobModel.h"
-#include "JobPropertiesWidget.h"
-#include "JobSelectorActions.h"
-#include "JobSelectorToolBar.h"
-#include "StyledToolBar.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/JobWidgets/JobListWidget.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/JobPropertiesWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorActions.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include "minisplitter.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QHBoxLayout>
 
 JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent)
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h
index 6bb431332ec69701a944c660eaa6c3a489a38451..9a4dee118b150838ae8ee1925ff49ce0dd4c027d 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h
@@ -15,7 +15,7 @@
 #ifndef JOBSELECTORWIDGET_H
 #define JOBSELECTORWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class JobModel;
diff --git a/GUI/coregui/Views/JobWidgets/JobViewActivities.cpp b/GUI/coregui/Views/JobWidgets/JobViewActivities.cpp
index 569c72c329308a6d13db062e04d00c8a3691a82f..8fbe3e605fff32bcc9c2b43047710d50545612ff 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewActivities.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobViewActivities.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "JobViewActivities.h"
-#include "GUIHelpers.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewActivities.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/JobWidgets/JobViewActivities.h b/GUI/coregui/Views/JobWidgets/JobViewActivities.h
index 7de0bb1d7d6c67f47802bd35ba7fe4dbe01088a4..74ea31aae1aeb96befae51bcac14936b0227e47b 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewActivities.h
+++ b/GUI/coregui/Views/JobWidgets/JobViewActivities.h
@@ -15,8 +15,8 @@
 #ifndef JOBVIEWACTIVITIES_H
 #define JOBVIEWACTIVITIES_H
 
-#include "JobViewFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QStringList>
 #include <QVector>
diff --git a/GUI/coregui/Views/JobWidgets/JobViewDocks.cpp b/GUI/coregui/Views/JobWidgets/JobViewDocks.cpp
index c2cdc4d43f064685f7d135ff7f54bf49ee085d84..8434e7008ba5e44377de38fde9b911a639725573 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewDocks.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobViewDocks.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "JobViewDocks.h"
-#include "FitActivityPanel.h"
-#include "JobMessagePanel.h"
-#include "JobModel.h"
-#include "JobOutputDataWidget.h"
-#include "JobRealTimeWidget.h"
-#include "JobSelectorWidget.h"
-#include "JobView.h"
-#include "JobViewActivities.h"
-#include "JobViewFlags.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewDocks.h"
+#include "GUI/coregui/Views/FitWidgets/FitActivityPanel.h"
+#include "GUI/coregui/Views/JobWidgets/JobMessagePanel.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/JobOutputDataWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobRealTimeWidget.h"
+#include "GUI/coregui/Views/JobWidgets/JobSelectorWidget.h"
+#include "GUI/coregui/Views/JobView.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewActivities.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewFlags.h"
 #include <QDockWidget>
 
 namespace
diff --git a/GUI/coregui/Views/JobWidgets/JobViewDocks.h b/GUI/coregui/Views/JobWidgets/JobViewDocks.h
index 67514c3c31e672e536c6682b28df50741f40fb37..5b5a9aadccac81b0a3e05417e8a4b8e87fa33a8c 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewDocks.h
+++ b/GUI/coregui/Views/JobWidgets/JobViewDocks.h
@@ -15,7 +15,7 @@
 #ifndef JOBVIEWDOCKS_H
 #define JOBVIEWDOCKS_H
 
-#include "DocksController.h"
+#include "GUI/coregui/Views/CommonWidgets/DocksController.h"
 
 class JobView;
 class JobSelectorWidget;
diff --git a/GUI/coregui/Views/JobWidgets/JobViewFlags.h b/GUI/coregui/Views/JobWidgets/JobViewFlags.h
index 3f5a02a69dbcb399dd71e2d3a0564e1169502c7d..d6a42c72f135a5b59e0fbd02f444a06d9d5514b7 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewFlags.h
+++ b/GUI/coregui/Views/JobWidgets/JobViewFlags.h
@@ -15,7 +15,7 @@
 #ifndef JOBVIEWFLAGS_H
 #define JOBVIEWFLAGS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 //! The JobViewFlags class is a namespace for various flags used in JobView.
diff --git a/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp b/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp
index 9b3f473bd600b1c24287687e55fb830646405a82..d25197e23b46f263604e2b96db9c995d8954a32a 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "JobViewStatusBar.h"
-#include "JobViewActivities.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewStatusBar.h"
+#include "GUI/coregui/Views/JobWidgets/JobViewActivities.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QComboBox>
 #include <QHBoxLayout>
 #include <QStatusBar>
diff --git a/GUI/coregui/Views/JobWidgets/JobViewStatusBar.h b/GUI/coregui/Views/JobWidgets/JobViewStatusBar.h
index b10c19962fb1b5a44aabc78560cfc4301efd653c..7ab591fae850b31e23486d0d7e34aa21f616d5e9 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewStatusBar.h
+++ b/GUI/coregui/Views/JobWidgets/JobViewStatusBar.h
@@ -15,7 +15,7 @@
 #ifndef JOBVIEWSTATUSBAR_H
 #define JOBVIEWSTATUSBAR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp
index 87e305b98cd22422a78543471f2188614417f7df..fd550c9d374a209a56cd401c0257f72b4ed809f4 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "ParameterTuningDelegate.h"
-#include "ModelPath.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTuningModel.h"
-#include "ScientificSpinBox.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/ParameterTuningModel.h"
+#include "GUI/coregui/Views/JobWidgets/ScientificSpinBox.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAbstractItemModel>
 #include <QApplication>
 #include <QHBoxLayout>
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h
index 0c1c96338eff77f06383bee7e7af4aa64c3eedda..d29d5298bcc71fb125468f07e4c152aa554d8d67 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERTUNINGDELEGATE_H
 #define PARAMETERTUNINGDELEGATE_H
 
-#include "RealLimits.h"
+#include "Fit/Tools/RealLimits.h"
 #include <QItemDelegate>
 #include <memory>
 
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
index 18a137568a763bec8672355c7a4e5e1c7bd76bbf..b1d33175946e9257803b12c43607aa6c3e77dc1d 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "ParameterTuningWidget.h"
-#include "GUIHelpers.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "JobRealTimeToolBar.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTuningDelegate.h"
-#include "ParameterTuningModel.h"
-#include "SliderSettingsWidget.h"
-#include "WarningSign.h"
+#include "GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobWidgets/JobRealTimeToolBar.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h"
+#include "GUI/coregui/Models/ParameterTuningModel.h"
+#include "GUI/coregui/Views/JobWidgets/SliderSettingsWidget.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
 #include <QTreeView>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h
index 38385fd90135abf0d18bf5e3a6962fe9c4b8ef12..033f2a14418e8420b6fa41641c751b96d01d8be3 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h
@@ -15,7 +15,7 @@
 #ifndef PARAMETERTUNINGWIDGET_H
 #define PARAMETERTUNINGWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class JobRealTimeToolBar;
 class JobModel;
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditor.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsEditor.cpp
index b2da08c1f6ac7b8fc6635f92bb08d4a4fd57b9e1..6fc16ee6f6a2bb3db61b29f11993e8301b6ddbca 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditor.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditor.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsEditor.h"
-#include "IntensityDataItem.h"
-#include "ProjectionsEditorActions.h"
-#include "ProjectionsEditorCanvas.h"
-#include "ProjectionsPropertyPanel.h"
-#include "ProjectionsToolBar.h"
-#include "ProjectionsWidget.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditor.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsToolBar.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsWidget.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include "minisplitter.h"
 #include <QItemSelectionModel>
 #include <QSplitter>
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditor.h b/GUI/coregui/Views/JobWidgets/ProjectionsEditor.h
index 02a32a854c8fd1b64ee75477ad44b78a1275c130..af0a446b63696468a2c2b3b8f95bd40ad8ea5789 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditor.h
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditor.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTIONSEDITOR_H
 #define PROJECTIONSEDITOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMainWindow>
 
 class SessionModel;
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp
index 0f0344c5d41471322f5e88e634198727ddd23d02..39bdb695ce623f8f926d5e6eb6fd736e03100687 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsEditorActions.h"
-#include "SaveProjectionsAssistant.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAction>
 #include <QItemSelectionModel>
 #include <QModelIndexList>
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h b/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h
index e7dd11ed1743e5a6fa11bbec31f43e59c2362e15..1f08d8d496039da502f990249f5aa8b284d29082 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTIONSEDITORACTIONS_H
 #define PROJECTIONSEDITORACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QList>
 #include <QModelIndex>
 #include <QObject>
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp
index 8e07a6948bbb440b020db6e2c59c9a5aa8e0a75e..8b2ac320c205109725faf5f5436d61244e8936d7 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsEditorCanvas.h"
-#include "ColorMap.h"
-#include "IntensityDataItem.h"
-#include "MaskGraphicsScene.h"
-#include "MaskGraphicsView.h"
-#include "MaskItems.h"
-#include "PlotStatusLabel.h"
-#include "ScientificPlotEvent.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlotEvent.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QItemSelectionModel>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.h b/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.h
index b98d9b102171f8fbfa99b2a741d1e3a5e2b6dbae..8e0641c3f12b363ef3e6e20974eb1851e12de876 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.h
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.h
@@ -15,8 +15,8 @@
 #ifndef PROJECTIONSEDITORCANVAS_H
 #define PROJECTIONSEDITORCANVAS_H
 
-#include "MaskEditorFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QModelIndex>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.cpp
index 4c90686d3b762e3ff8aa42eda4b35c9b3a1b08ec..a12b467bba159cd805d1abef51bd7f85ed68fe35 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsPropertyPanel.h"
-#include "ComponentEditor.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
 #include <QVBoxLayout>
 
 ProjectionsPropertyPanel::ProjectionsPropertyPanel(QWidget* parent)
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.h b/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.h
index 10c3c71a78e0d3dead215be3c9a5a5f4d291206a..453bee60dcbb6a0676bf1790b840ed0f02d1eb2c 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.h
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsPropertyPanel.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTIONSPROPERTYPANEL_H
 #define PROJECTIONSPROPERTYPANEL_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ComponentEditor;
 
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.cpp
index df8ce98a2466cd70d45aca686720f4e84136f9ba..1c215e4a68e68ebb1ba1654b417a2b292c8e5e1a 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsToolBar.h"
-#include "MaskEditorFlags.h"
-#include "ProjectionsEditorActions.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsToolBar.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QButtonGroup>
 #include <QLabel>
 #include <QToolButton>
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.h b/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.h
index 93135ee2520b9ca247f3d7f3daa36ff1dd2b3427..9e5a79a7126132ac101f34b4a3f52bed758844f7 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.h
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsToolBar.h
@@ -15,8 +15,8 @@
 #ifndef PROJECTIONSTOOLBAR_H
 #define PROJECTIONSTOOLBAR_H
 
-#include "MaskEditorFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QToolBar>
 
 class ProjectionsEditorActions;
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsWidget.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsWidget.cpp
index d34675fb3beca529d37b64a5d372202956f96c9b..a3002d20dea0c6d5663807e9e738453cef95d2fb 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ProjectionsWidget.h"
-#include "ProjectionsPlot.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/JobWidgets/ProjectionsWidget.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QTabWidget>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsWidget.h b/GUI/coregui/Views/JobWidgets/ProjectionsWidget.h
index a6d55321f151c44ec3c2f9f6410849c04164f786..efe337a3e3b4cfdddf1688190e12566d7c1abffc 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsWidget.h
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsWidget.h
@@ -15,8 +15,8 @@
 #ifndef PROJECTIONSWIDGET_H
 #define PROJECTIONSWIDGET_H
 
-#include "MaskEditorFlags.h"
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class ProjectionsPlot;
 class QTabWidget;
diff --git a/GUI/coregui/Views/JobWidgets/ScientificSpinBox.cpp b/GUI/coregui/Views/JobWidgets/ScientificSpinBox.cpp
index 06bd601f78289e386c501c1e0f0ab8f994177f20..bc966978ff2f6c60a1be46e1e97a0d4c3cedf4e4 100644
--- a/GUI/coregui/Views/JobWidgets/ScientificSpinBox.cpp
+++ b/GUI/coregui/Views/JobWidgets/ScientificSpinBox.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ScientificSpinBox.h"
+#include "GUI/coregui/Views/JobWidgets/ScientificSpinBox.h"
 #include <QLineEdit>
 #include <cmath>
 
diff --git a/GUI/coregui/Views/JobWidgets/ScientificSpinBox.h b/GUI/coregui/Views/JobWidgets/ScientificSpinBox.h
index 6c371e94a93f13b44dc72f1acb022936143651e9..83d48ae9cee41afece1b170c5381a32799dca3d2 100644
--- a/GUI/coregui/Views/JobWidgets/ScientificSpinBox.h
+++ b/GUI/coregui/Views/JobWidgets/ScientificSpinBox.h
@@ -15,7 +15,7 @@
 #ifndef SCIENTIFICSPINBOX_H
 #define SCIENTIFICSPINBOX_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QAbstractSpinBox>
 
 class BA_CORE_API_ ScientificSpinBox : public QAbstractSpinBox
diff --git a/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.cpp b/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.cpp
index cd7ca677f63627e361464534f462733014210a87..4d7cebd8d53c3a336c5211a5817b20b70386bf50 100644
--- a/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SliderSettingsWidget.h"
+#include "GUI/coregui/Views/JobWidgets/SliderSettingsWidget.h"
 #include <QCheckBox>
 #include <QGroupBox>
 #include <QHBoxLayout>
diff --git a/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.h b/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.h
index 1824a7aa17fe66204c1fa47466a0c259282f0a4e..3f0e28c396aadc20accc70d9ba5d70997dae3d94 100644
--- a/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.h
+++ b/GUI/coregui/Views/JobWidgets/SliderSettingsWidget.h
@@ -15,7 +15,7 @@
 #ifndef SLIDERSETTINGSWIDGET_H
 #define SLIDERSETTINGSWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QRadioButton;
diff --git a/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.cpp b/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.cpp
index 25e884ae5c47000e5c10c7357e4573d3871b5d8a..6b86d35cccd6b2e43d450aac4b7c33ed809ec874 100644
--- a/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.cpp
+++ b/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ColorMapSceneAdaptor.h"
-#include "ColorMap.h"
+#include "GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
 
 ColorMapSceneAdaptor::ColorMapSceneAdaptor() : m_plot(0) {}
 
diff --git a/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h b/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h
index 7e97b1f064950caee1535cf48a8b5e5a8948bfe8..260736c96663cb9b53467a50f3ff5984f21821b7 100644
--- a/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h
+++ b/GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h
@@ -15,7 +15,7 @@
 #ifndef COLORMAPSCENEADAPTOR_H
 #define COLORMAPSCENEADAPTOR_H
 
-#include "ISceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h"
 class ColorMap;
 
 //! Performs conversion of MaskItems coordinates between ColorMap and GraphicsScene.
diff --git a/GUI/coregui/Views/MaskWidgets/EllipseView.cpp b/GUI/coregui/Views/MaskWidgets/EllipseView.cpp
index 78d11f34caa16b29e021deddb4c6b107656f39a8..2d7748a35071460698160b4fd61e230ee66b9ae5 100644
--- a/GUI/coregui/Views/MaskWidgets/EllipseView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/EllipseView.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "EllipseView.h"
-#include "MaskItems.h"
-#include "SizeHandleElement.h"
+#include "GUI/coregui/Views/MaskWidgets/EllipseView.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/SizeHandleElement.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 
diff --git a/GUI/coregui/Views/MaskWidgets/EllipseView.h b/GUI/coregui/Views/MaskWidgets/EllipseView.h
index 58d4f0c8c15d45b2ecb746dd31af2393b337225a..2ab953fd084197a1a5cfd14b22d74876d0a3ef5e 100644
--- a/GUI/coregui/Views/MaskWidgets/EllipseView.h
+++ b/GUI/coregui/Views/MaskWidgets/EllipseView.h
@@ -15,7 +15,7 @@
 #ifndef ELLIPSEVIEW_H
 #define ELLIPSEVIEW_H
 
-#include "RectangleBaseView.h"
+#include "GUI/coregui/Views/MaskWidgets/RectangleBaseView.h"
 
 //! This is a View of ellipse mask (represented by EllipseItem) on GraphicsScene.
 //! Given view follows standard QGraphicsScene notations: (x,y) is top left corner.
diff --git a/GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h b/GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h
index ef160be6a615b811619afbe7194a56c4110543ec..18abcc3072df91af8b43d76d08ea31dc0ff1dae0 100644
--- a/GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h
+++ b/GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h
@@ -15,7 +15,7 @@
 #ifndef ISCENEADAPTOR_H
 #define ISCENEADAPTOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <QRectF>
 
diff --git a/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp b/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp
index 39f622316df0c849e018ad9019b8bfe835d3c1a5..bb2b0e6f2f7e8d334c6e2a579f78686e6ba409a0 100644
--- a/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "IShape2DView.h"
-#include "ISceneAdaptor.h"
-#include "MaskItems.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QAction>
 #include <QGraphicsSceneContextMenuEvent>
 #include <QMenu>
diff --git a/GUI/coregui/Views/MaskWidgets/IShape2DView.h b/GUI/coregui/Views/MaskWidgets/IShape2DView.h
index 037ee9b96147c39385a7d1cff174efb798257725..4d63e9d4312477fbf8ccf1af37d7086c9f68af4b 100644
--- a/GUI/coregui/Views/MaskWidgets/IShape2DView.h
+++ b/GUI/coregui/Views/MaskWidgets/IShape2DView.h
@@ -15,8 +15,8 @@
 #ifndef ISHAPE2DVIEW_H
 #define ISHAPE2DVIEW_H
 
-#include "MaskEditorHelper.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
+#include "Wrap/WinDllMacros.h"
 #include <QGraphicsObject>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/MaskWidgets/IntensityDataView.cpp b/GUI/coregui/Views/MaskWidgets/IntensityDataView.cpp
index a69624f28107aec08c9bbb0a88fdd6369ca6bfe1..21e1b27b429cbd3757169ac481f9720833393a2c 100644
--- a/GUI/coregui/Views/MaskWidgets/IntensityDataView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/IntensityDataView.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IntensityDataView.h"
-#include "ISceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/IntensityDataView.h"
+#include "GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h"
 #include <QBrush>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/MaskWidgets/IntensityDataView.h b/GUI/coregui/Views/MaskWidgets/IntensityDataView.h
index 5354fdb553afb961e01314303bdf56be8cda90e4..f4df7791cfa9f11dd3ac424bcbb15d14a0b46ffe 100644
--- a/GUI/coregui/Views/MaskWidgets/IntensityDataView.h
+++ b/GUI/coregui/Views/MaskWidgets/IntensityDataView.h
@@ -15,8 +15,8 @@
 #ifndef INTENSITYDATAVIEW_H
 #define INTENSITYDATAVIEW_H
 
-#include "IShape2DView.h"
-#include "SizeHandleElement.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/SizeHandleElement.h"
 #include <QMap>
 
 //! The IntensityDataView is nothing move than just transparent rectangle to cover axes area
diff --git a/GUI/coregui/Views/MaskWidgets/LineViews.cpp b/GUI/coregui/Views/MaskWidgets/LineViews.cpp
index ca19ba2325f8f074fcd7b8488430897e81303923..bb0141b19769d4dfe52812690aa9e1ba2da84bb5 100644
--- a/GUI/coregui/Views/MaskWidgets/LineViews.cpp
+++ b/GUI/coregui/Views/MaskWidgets/LineViews.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "LineViews.h"
-#include "ColorMapSceneAdaptor.h"
-#include "MaskEditorHelper.h"
-#include "MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/LineViews.h"
+#include "GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
+#include "GUI/coregui/Models/MaskItems.h"
 #include <QCursor>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/MaskWidgets/LineViews.h b/GUI/coregui/Views/MaskWidgets/LineViews.h
index e8265ca233a7e2a604189d24e49301bf2b111eec..968aa5a17dca0695b505d471cd61b09df58f1222 100644
--- a/GUI/coregui/Views/MaskWidgets/LineViews.h
+++ b/GUI/coregui/Views/MaskWidgets/LineViews.h
@@ -15,7 +15,7 @@
 #ifndef LINEVIEWS_H
 #define LINEVIEWS_H
 
-#include "IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
 
 //! This is a view of VerticalLineItem mask
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskAllView.cpp b/GUI/coregui/Views/MaskWidgets/MaskAllView.cpp
index 41bbe147d6070fd479f77b23b502d4e3c8d74c2e..51d329a6d9de31cdbe390260311626330cc63188 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskAllView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskAllView.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "MaskAllView.h"
-#include "ColorMapSceneAdaptor.h"
-#include "MaskEditorHelper.h"
-#include "MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskAllView.h"
+#include "GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
+#include "GUI/coregui/Models/MaskItems.h"
 #include <QBrush>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskAllView.h b/GUI/coregui/Views/MaskWidgets/MaskAllView.h
index 6a3379a2bd2f057b0b9f6e5abdd22286d5a12a02..9904454cd5d42c9ed1d807880256073342409f0f 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskAllView.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskAllView.h
@@ -15,7 +15,7 @@
 #ifndef MASKALLVIEW_H
 #define MASKALLVIEW_H
 
-#include "IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
 
 //! This is a view of MaskAllItem which covers whole detector plane with mask value=true.
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskContainerView.cpp b/GUI/coregui/Views/MaskWidgets/MaskContainerView.cpp
index c335f17556139063f3d818e8179ceead880cffa3..133073474b74f9dc9cbcf21a92b46e83932b3ec6 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskContainerView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskContainerView.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MaskContainerView.h"
-#include "ISceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskContainerView.h"
+#include "GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h"
 #include <QBrush>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskContainerView.h b/GUI/coregui/Views/MaskWidgets/MaskContainerView.h
index 6001dd83095dfbb58a08703a3ae0beeeba27c115..3f384709a354322befe1499db9f034cc1446a644 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskContainerView.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskContainerView.h
@@ -15,8 +15,8 @@
 #ifndef MASKCONTAINERVIEW_H
 #define MASKCONTAINERVIEW_H
 
-#include "IShape2DView.h"
-#include "SizeHandleElement.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/SizeHandleElement.h"
 #include <QMap>
 
 //! The MaskContainerView is nothing move than just transparent rectangle to cover axes area
diff --git a/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.cpp b/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.cpp
index afe660fb4967a4726a93b96563c985684ff207f0..85a2a1e439f6a341155eb7a5c0aec23b2174ad2c 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MaskDrawingContext.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskDrawingContext.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 MaskDrawingContext::MaskDrawingContext()
     : m_current_activity(MaskEditorFlags::PAN_ZOOM_MODE), m_mask_value(MaskEditorFlags::MASK_ON),
diff --git a/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.h b/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.h
index a619b8a46bb5040c05b9feb0bdffbde977c3a38f..1d80e62d177e616b99f1b7d67fc8c7c658c2c63c 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskDrawingContext.h
@@ -15,8 +15,8 @@
 #ifndef MASKDRAWINGCONTEXT_H
 #define MASKDRAWINGCONTEXT_H
 
-#include "MaskEditorFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Helper class for MaskGraphicsScene to hold drawing conditions
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
index 09915bd02f6de9b0618c3ea8b2fe973d57f06bb6..a0c9b16032763eb0409fe10c8688a372519ef9cf 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MaskEditor.h"
-#include "MaskEditorActions.h"
-#include "MaskEditorCanvas.h"
-#include "MaskEditorPropertyPanel.h"
-#include "MaskEditorToolBar.h"
-#include "MaskGraphicsScene.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditor.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorActions.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include "minisplitter.h"
 #include <QBoxLayout>
 #include <QContextMenuEvent>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditor.h b/GUI/coregui/Views/MaskWidgets/MaskEditor.h
index 93683c0c97bbdbd1d848828fe3aeafc92dd76143..614ae9f78cf7432456b0f831de8130dd76dd6063 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditor.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditor.h
@@ -15,7 +15,7 @@
 #ifndef MASKEDITOR_H
 #define MASKEDITOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMainWindow>
 #include <QModelIndex>
 #include <QWidget>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
index c28f9c1bb67974e8da076164400370593a9cba6e..e7dfb853c55accd91913c2257b629c902e674bf2 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MaskEditorActions.h"
-#include "MaskItems.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorActions.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QAction>
 #include <QItemSelectionModel>
 #include <QMenu>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.h b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.h
index 7f00d88eeb475977dcdfc3fdadd68444c431965e..89c4d9239997b07a8348aaeb5a4087219a07c2b8 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.h
@@ -15,8 +15,8 @@
 #ifndef MASKEDITORACTIONS_H
 #define MASKEDITORACTIONS_H
 
-#include "MaskEditorFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QList>
 #include <QModelIndex>
 #include <QObject>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp
index cc5a8cf53a503ef5ecb6ca10e58f1677fc705828..d84e125296b1991d8cb3cd481c5608f416fd9771 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "MaskEditorCanvas.h"
-#include "AppSvc.h"
-#include "ColorMap.h"
-#include "IntensityDataItem.h"
-#include "MaskGraphicsScene.h"
-#include "MaskGraphicsView.h"
-#include "MaskItems.h"
-#include "MaskResultsPresenter.h"
-#include "PlotStatusLabel.h"
-#include "SavePlotAssistant.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QVBoxLayout>
 
 MaskEditorCanvas::MaskEditorCanvas(QWidget* parent)
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.h b/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.h
index 854ffc330a4c83c3b1e43e7e3f5c093181d221ef..c5cddeea9abe63606f38b9714aed32eda947b230 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.h
@@ -15,7 +15,7 @@
 #ifndef MASKEDITORCANVAS_H
 #define MASKEDITORCANVAS_H
 
-#include "MaskEditorFlags.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
 #include <QWidget>
 
 class MaskGraphicsScene;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h b/GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h
index 0f1ec72764a8d89aa74778e7edd0e5a7edbbfd3f..27dc7c898a4329656b7f0a2a934ad71849b0be1f 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h
@@ -15,7 +15,7 @@
 #ifndef MASKEDITORFLAGS_H
 #define MASKEDITORFLAGS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 //! Help class to define various flags for MaskEditor operation
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.cpp
index 5bb5366de5923f5c4ac25227a51677dd6b7e4ead..2d67bf4ff5829d1322c4675cdd9aaa653fe73f74 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MaskEditorHelper.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
 #include <QBrush>
 #include <QColor>
 #include <QPen>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h b/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h
index 23f2c0b74c286733d9919a73b2f3ee353346359e..9be87e680dd36e49a11033537ceb2c6407b40abe 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h
@@ -15,7 +15,7 @@
 #ifndef MASKEDITORHELPER_H
 #define MASKEDITORHELPER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QGraphicsItem>
 
 class QBrush;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp
index 68b0a817f9cab6c41cf2f216884e010bd79664da..0c76b53916e657e2b5c329c0cc92420efcba32a6 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "MaskEditorPropertyPanel.h"
-#include "AccordionWidget.h"
-#include "ComponentEditor.h"
-#include "ContentPane.h"
-#include "IntensityDataItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.h"
+#include "GUI/coregui/Views/AccordionWidget/AccordionWidget.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/AccordionWidget/ContentPane.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QListView>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.h b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.h
index db1ccdbfc4c414b52a4d23f27d61075d6d765ad0..597ece5a16c537cf856d8751524b97ae89c19e1d 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.h
@@ -15,7 +15,7 @@
 #ifndef MASKEDITORPROPERTYPANEL_H
 #define MASKEDITORPROPERTYPANEL_H
 
-#include "MaskEditorFlags.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
 #include <QModelIndex>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp
index e972a4d1b5df8eb8237d92dafe73d754721a4ad2..7730f2eda65ee6127deb23ac306234e5ee2304dd 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MaskEditorToolBar.h"
-#include "MaskEditorActions.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorActions.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QButtonGroup>
 #include <QLabel>
 #include <QRadioButton>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.h b/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.h
index d4abab701b847bee288d48b0cc50dc00e1997f64..d90359918bb75398749058522755db4d9a901b1c 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.h
@@ -15,8 +15,8 @@
 #ifndef MASKEDITORTOOLBAR_H
 #define MASKEDITORTOOLBAR_H
 
-#include "MaskEditorFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QToolBar>
 
 class MaskEditorActions;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.cpp b/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.cpp
index 923db62b72db36d9d80eebdf5d74364a8861f597..815ee01c8380d1f99813e5a115d9a9e6d96abe6a 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "MaskGraphicsProxy.h"
-#include "ColorMap.h"
-#include "ColorMapSceneAdaptor.h"
-#include "IntensityDataItem.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMap.h"
+#include "GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
 #include <QGraphicsSceneMouseEvent>
 
 MaskGraphicsProxy::MaskGraphicsProxy()
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h b/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h
index 2448ab1c51706afff199012cac54fe5feca2406d..387406a9836618d4a6a0364c6e86f54a077c5cc2 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h
@@ -15,7 +15,7 @@
 #ifndef MASKGRAPHICSPROXY_H
 #define MASKGRAPHICSPROXY_H
 
-#include "MaskEditorHelper.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
 #include <QGraphicsProxyWidget>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
index fe0c5b2b94d3ea0cbe5d46eba470913b7fb935be..af6f5456ef667a2bfab0d1910e77bb0286f33de5 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "MaskGraphicsScene.h"
-#include "ColorMapSceneAdaptor.h"
-#include "GUIHelpers.h"
-#include "ISceneAdaptor.h"
-#include "IShape2DView.h"
-#include "IntensityDataItem.h"
-#include "MaskEditorFlags.h"
-#include "MaskGraphicsProxy.h"
-#include "MaskItems.h"
-#include "MaskViewFactory.h"
-#include "PolygonView.h"
-#include "SessionItem.h"
-#include "SessionModel.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h"
+#include "GUI/coregui/Views/MaskWidgets/ColorMapSceneAdaptor.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskViewFactory.h"
+#include "GUI/coregui/Views/MaskWidgets/PolygonView.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QGraphicsItem>
 #include <QGraphicsSceneMoveEvent>
 #include <QItemSelection>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h
index 70368867cea25bd4cff11c6a6c821155abe0ac3f..c906256ff517ebcd58a1a323b5352f5b01a9f21f 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h
@@ -15,8 +15,8 @@
 #ifndef MASKGRAPHICSSCENE_H
 #define MASKGRAPHICSSCENE_H
 
-#include "MaskDrawingContext.h"
-#include "MaskEditorHelper.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskDrawingContext.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
 #include <QGraphicsScene>
 #include <QMap>
 #include <QModelIndex>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.cpp b/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.cpp
index 5e0794282eac5ab486bcb6fa51a46811892099df..fd51059261e74fa0410717758438df111f343133 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MaskGraphicsView.h"
-#include "MaskGraphicsProxy.h"
-#include "MaskGraphicsScene.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsProxy.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h"
 #include <QGraphicsScene>
 #include <QScrollBar>
 #include <QTransform>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h b/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h
index fb26c70d24c13f460fbd18528cb7f650ade7ec97..52bdd4c58a76b6e717a0850606d59b391f805f3a 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsView.h
@@ -15,7 +15,7 @@
 #ifndef MASKGRAPHICSVIEW_H
 #define MASKGRAPHICSVIEW_H
 
-#include "MaskEditorFlags.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
 #include <QGraphicsView>
 
 class QWheelEvent;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp b/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp
index 84b8e628815bc7d64eaa3619547bd92162b59905..fa2d273af8d900e8c282c3de45170231951f8cae 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "MaskResultsPresenter.h"
-#include "DetectorMask.h"
-#include "IShape2D.h"
-#include "IntensityDataItem.h"
-#include "MaskItems.h"
-#include "OutputData.h"
-#include "RegionOfInterest.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h"
+#include "Core/Instrument/DetectorMask.h"
+#include "Core/Mask/IShape2D.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QVBoxLayout>
 
 MaskResultsPresenter::MaskResultsPresenter(QWidget* parent)
diff --git a/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h b/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h
index e83beb03361e907128abbbd0565ef1ebc3e3d760..5ad7e97d14bd11da0568ef8232129b8353b19cca 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h
@@ -15,8 +15,8 @@
 #ifndef MASKRESULTSPRESENTER_H
 #define MASKRESULTSPRESENTER_H
 
-#include "MaskEditorFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QModelIndex>
 #include <QObject>
 #include <memory>
diff --git a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
index 9bf24f5295e33253c7c1f8c79d43ad245413197e..e1314882ae5dc103eb0c3f22522dfe15b6c32517 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MaskUnitsConverter.h"
-#include "BornAgainNamespace.h"
-#include "GUIHelpers.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataItem.h"
-#include "MaskItems.h"
-#include "ProjectionItems.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/ProjectionItems.h"
 
 MaskUnitsConverter::MaskUnitsConverter() : mp_data(nullptr), m_direction(UNDEFINED) {}
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h
index a4fd27542f9db8ea5919833791195e2ee9aa60dd..b64ec46865d1b9be687bb0df01de67dc42e0d4ab 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h
@@ -15,7 +15,7 @@
 #ifndef MASKUNITSCONVERTER_H
 #define MASKUNITSCONVERTER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class IntensityDataItem;
 class SessionItem;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp
index ec28f3a99750a963adcf67ac6054ea3b85f4d173..ce5cd5b761d0e3a2024d37c21993169f0bb0a7eb 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "MaskViewFactory.h"
-#include "EllipseView.h"
-#include "GUIHelpers.h"
-#include "IShape2DView.h"
-#include "IntensityDataView.h"
-#include "LineViews.h"
-#include "MaskAllView.h"
-#include "MaskContainerView.h"
-#include "PolygonPointView.h"
-#include "PolygonView.h"
-#include "RectangleView.h"
-#include "RegionOfInterestView.h"
-#include "SessionItem.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskViewFactory.h"
+#include "GUI/coregui/Views/MaskWidgets/EllipseView.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/IntensityDataView.h"
+#include "GUI/coregui/Views/MaskWidgets/LineViews.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskAllView.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskContainerView.h"
+#include "GUI/coregui/Views/MaskWidgets/PolygonPointView.h"
+#include "GUI/coregui/Views/MaskWidgets/PolygonView.h"
+#include "GUI/coregui/Views/MaskWidgets/RectangleView.h"
+#include "GUI/coregui/Views/MaskWidgets/RegionOfInterestView.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 IShape2DView* MaskViewFactory::createMaskView(SessionItem* item, ISceneAdaptor* adaptor)
 {
diff --git a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h
index 2d794af73b8ed82f169eb5755a58522c7dead64e..c77941b5507b739d98f48fcd76ef947ceb96d906 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h
+++ b/GUI/coregui/Views/MaskWidgets/MaskViewFactory.h
@@ -15,7 +15,7 @@
 #ifndef MASKVIEWFACTORY_H
 #define MASKVIEWFACTORY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 class IShape2DView;
diff --git a/GUI/coregui/Views/MaskWidgets/PolygonPointView.cpp b/GUI/coregui/Views/MaskWidgets/PolygonPointView.cpp
index 296922d5e846b373024a3866802aa0f4068f4a66..e665f3677d9a7d6e9e63e71cfc72542a8775cbf8 100644
--- a/GUI/coregui/Views/MaskWidgets/PolygonPointView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/PolygonPointView.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PolygonPointView.h"
-#include "MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/PolygonPointView.h"
+#include "GUI/coregui/Models/MaskItems.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 
diff --git a/GUI/coregui/Views/MaskWidgets/PolygonPointView.h b/GUI/coregui/Views/MaskWidgets/PolygonPointView.h
index 1d5cb73e994689bd107adc86225a008e16342c3e..d607626eb58df514a94ecb3418ed8c593b1c9b18 100644
--- a/GUI/coregui/Views/MaskWidgets/PolygonPointView.h
+++ b/GUI/coregui/Views/MaskWidgets/PolygonPointView.h
@@ -15,7 +15,7 @@
 #ifndef POLYGONPOINTVIEW_H
 #define POLYGONPOINTVIEW_H
 
-#include "IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
 
 //! This is a View of polygon point for PolygonMaskItem
 
diff --git a/GUI/coregui/Views/MaskWidgets/PolygonView.cpp b/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
index fd3964945629b0109a484d281b4a334e2ee884fa..299a4cff06db649091b35a71d18e325961e20109 100644
--- a/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "PolygonView.h"
-#include "MaskItems.h"
-#include "PolygonPointView.h"
+#include "GUI/coregui/Views/MaskWidgets/PolygonView.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/PolygonPointView.h"
 #include <QCursor>
 #include <QPainter>
 
diff --git a/GUI/coregui/Views/MaskWidgets/PolygonView.h b/GUI/coregui/Views/MaskWidgets/PolygonView.h
index 366dfde526681e46dcb50e2ea855954035dd26e7..e7c98443d61a48b7eef43b29560a95c79f452ed4 100644
--- a/GUI/coregui/Views/MaskWidgets/PolygonView.h
+++ b/GUI/coregui/Views/MaskWidgets/PolygonView.h
@@ -15,7 +15,7 @@
 #ifndef POLYGONVIEW_H
 #define POLYGONVIEW_H
 
-#include "IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
 #include <QPolygonF>
 
 //! This is a View of polygon mask (represented by PolygonItem) on GraphicsScene.
diff --git a/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp b/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp
index 4a422b2ae182b5a45da33035a4dc6856b83e0774..f0bea1eb9114b1438caf176aa63d0ee385f5d282 100644
--- a/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RectangleBaseView.h"
+#include "GUI/coregui/Views/MaskWidgets/RectangleBaseView.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/MaskWidgets/RectangleBaseView.h b/GUI/coregui/Views/MaskWidgets/RectangleBaseView.h
index 587fb9059e915a3c7011e10bece5281f25a6d37f..1e2e02cdea9b42dc67a471967c1ca9f1cae88a79 100644
--- a/GUI/coregui/Views/MaskWidgets/RectangleBaseView.h
+++ b/GUI/coregui/Views/MaskWidgets/RectangleBaseView.h
@@ -15,8 +15,8 @@
 #ifndef RECTANGLEBASEVIEW_H
 #define RECTANGLEBASEVIEW_H
 
-#include "IShape2DView.h"
-#include "SizeHandleElement.h"
+#include "GUI/coregui/Views/MaskWidgets/IShape2DView.h"
+#include "GUI/coregui/Views/MaskWidgets/SizeHandleElement.h"
 #include <QMap>
 
 //! Base view for all rectangular-like masks.
diff --git a/GUI/coregui/Views/MaskWidgets/RectangleView.cpp b/GUI/coregui/Views/MaskWidgets/RectangleView.cpp
index 9a7196e2791e6da00680746c6bb13efc14fae401..879b27853444488d5379fd294370b4fe33c32a13 100644
--- a/GUI/coregui/Views/MaskWidgets/RectangleView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/RectangleView.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RectangleView.h"
-#include "MaskItems.h"
+#include "GUI/coregui/Views/MaskWidgets/RectangleView.h"
+#include "GUI/coregui/Models/MaskItems.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 
diff --git a/GUI/coregui/Views/MaskWidgets/RectangleView.h b/GUI/coregui/Views/MaskWidgets/RectangleView.h
index f688a2031cdf2a38e40be051d33c4d5c0da70ffb..f0bc49c5b39fe83904d202288db988d29dbd9f4d 100644
--- a/GUI/coregui/Views/MaskWidgets/RectangleView.h
+++ b/GUI/coregui/Views/MaskWidgets/RectangleView.h
@@ -15,7 +15,7 @@
 #ifndef RECTANGLEVIEW_H
 #define RECTANGLEVIEW_H
 
-#include "RectangleBaseView.h"
+#include "GUI/coregui/Views/MaskWidgets/RectangleBaseView.h"
 
 //! This is a View of rectangular mask (represented by RectangleItem) on GraphicsScene.
 //! Given view follows standard QGraphicsScene notations: (x,y) is top left corner.
diff --git a/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.cpp b/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.cpp
index 0cae94b2dcb28edaa98e688ba833856116dce4ad..baed85357d72a34273c98b625be7c9956c09db4d 100644
--- a/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "RegionOfInterestView.h"
+#include "GUI/coregui/Views/MaskWidgets/RegionOfInterestView.h"
 #include <QPainter>
 
 //! Paints two-color tiny frame without filling.
diff --git a/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.h b/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.h
index 8f64c3d894dfec763d82e840adf6c6929285e72d..1db1f7ecd6cd512ab22a7f7f6ae7f5e4b44b94f6 100644
--- a/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.h
+++ b/GUI/coregui/Views/MaskWidgets/RegionOfInterestView.h
@@ -15,7 +15,7 @@
 #ifndef REGIONOFINTERESTVIEW_H
 #define REGIONOFINTERESTVIEW_H
 
-#include "RectangleView.h"
+#include "GUI/coregui/Views/MaskWidgets/RectangleView.h"
 
 //! The RegionOfInterest class represent view of RegionOfInterestItem on graphics scene.
 
diff --git a/GUI/coregui/Views/MaskWidgets/SizeHandleElement.cpp b/GUI/coregui/Views/MaskWidgets/SizeHandleElement.cpp
index 879cfaaf4db39889ba8134994952124ce2170c5b..111cbae95f37860da8c7081c7117035186ebda3a 100644
--- a/GUI/coregui/Views/MaskWidgets/SizeHandleElement.cpp
+++ b/GUI/coregui/Views/MaskWidgets/SizeHandleElement.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SizeHandleElement.h"
-#include "ISceneAdaptor.h"
-#include "MaskEditorHelper.h"
+#include "GUI/coregui/Views/MaskWidgets/SizeHandleElement.h"
+#include "GUI/coregui/Views/MaskWidgets/ISceneAdaptor.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
 #include <QGraphicsSceneHoverEvent>
 #include <QPainter>
 
diff --git a/GUI/coregui/Views/MaskWidgets/SizeHandleElement.h b/GUI/coregui/Views/MaskWidgets/SizeHandleElement.h
index 27952c9b758fd606ddc96a2a8e0726b505b7786e..889e500a360dee32f1a84257622ddb48c7d2d635 100644
--- a/GUI/coregui/Views/MaskWidgets/SizeHandleElement.h
+++ b/GUI/coregui/Views/MaskWidgets/SizeHandleElement.h
@@ -15,7 +15,7 @@
 #ifndef SIZEHANDLEELEMENT_H
 #define SIZEHANDLEELEMENT_H
 
-#include "MaskEditorHelper.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditorHelper.h"
 #include <QCursor>
 #include <QGraphicsObject>
 #include <QMap>
diff --git a/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp b/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp
index c69c98adfe8b645319e1e0ed54e36472239f05e4..fff77a123707db07874133aef216b3eb48eb0c41 100644
--- a/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp
+++ b/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ExternalProperty.h"
-#include "MaterialItem.h"
-#include "MaterialModel.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialModel.h"
 
 ExternalProperty::ExternalProperty() {}
 
diff --git a/GUI/coregui/Views/MaterialEditor/ExternalProperty.h b/GUI/coregui/Views/MaterialEditor/ExternalProperty.h
index a9b8ebfc73d2a433fe53ec0f99d99aa215cbd57b..c1eb9dc3e9eca904ed46a1fd04ebf00acc20faf1 100644
--- a/GUI/coregui/Views/MaterialEditor/ExternalProperty.h
+++ b/GUI/coregui/Views/MaterialEditor/ExternalProperty.h
@@ -15,7 +15,7 @@
 #ifndef EXTERNALPROPERTY_H
 #define EXTERNALPROPERTY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QColor>
 #include <QMetaType>
 #include <QPixmap>
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp b/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp
index 227f76e98ff2b95a87b397b4a2a1ebe3b53caf98..75b2c84da7813b3f23fc6d696f1148b4dd2b39d1 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MaterialEditor.h"
-#include "ComponentEditor.h"
-#include "ExternalProperty.h"
-#include "MaterialEditorToolBar.h"
-#include "MaterialItem.h"
-#include "MaterialModel.h"
-#include "SessionDecorationModel.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditor.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/SessionDecorationModel.h"
 #include <QListView>
 #include <QSplitter>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditor.h b/GUI/coregui/Views/MaterialEditor/MaterialEditor.h
index a4598268f812d818b5099140a259b08fe735755d..ccd4368a10e26dd62f716bd2467d313316d10306 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditor.h
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditor.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALEDITOR_H
 #define MATERIALEDITOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MaterialModel;
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp b/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp
index 3a433be38894de2923a960036ab488eee5cfe1f4..498d30f3adbcadf706855764726d62e58137af20 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "MaterialEditorDialog.h"
-#include "ExternalProperty.h"
-#include "MaterialEditor.h"
-#include "MaterialItem.h"
-#include "MaterialItemUtils.h"
-#include "MaterialModel.h"
-#include "StyleUtils.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditor.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QAction>
 #include <QPushButton>
 #include <QSettings>
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h b/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h
index 5f93289a231912c73910eb85e07af360755287b6..3ec44bd68e23277f677d6dabf0570b19ed06ec03 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALEDITORDIALOG_H
 #define MATERIALEDITORDIALOG_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 #include <memory>
 
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp b/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp
index 9bd71309b7b93126cbd41e7c6d2a33e45224d4d6..14d47db1402a0af1068cd277c683c4248ac53802 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MaterialEditorToolBar.h"
-#include "MaterialItem.h"
-#include "MaterialModel.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialModel.h"
 #include <QAction>
 #include <QItemSelectionModel>
 #include <QListView>
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.h b/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.h
index fb8bbd211015362d932709c29f1d76d43f698070..a20ce73513d77e937f00f3fa4d1c3b28e56b20ac 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.h
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.h
@@ -15,7 +15,7 @@
 #ifndef MATERIALEDITORTOOLBAR_H
 #define MATERIALEDITORTOOLBAR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QToolBar>
 
 class QAction;
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp
index 21b3df8c9a8e9fc1fe8e68394c57ab43bc9cb8a7..13bed37bb4c9eb0f4d91a3c9e0160e374c2cda21 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "MaterialItemUtils.h"
-#include "AppSvc.h"
-#include "ComboProperty.h"
-#include "DesignerHelper.h"
-#include "GUIHelpers.h"
-#include "LayerItem.h"
-#include "Material.h"
-#include "MaterialDataItems.h"
-#include "MaterialEditorDialog.h"
-#include "MaterialItem.h"
-#include "MaterialItemContainer.h"
-#include "MaterialModel.h"
-#include "MesoCrystalItem.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "Core/Material/Material.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialItemContainer.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
 #include <QColorDialog>
 
 namespace
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h
index 9ea4c4e2fe63f2e5dc92a9db1377584fb4488117..7e888c0e98eec37cf3ddf7cd33f1aa9063b71c94 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h
+++ b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h
@@ -15,8 +15,8 @@
 #ifndef MATERIALITEMUTILS_H
 #define MATERIALITEMUTILS_H
 
-#include "ExternalProperty.h"
-#include "MaterialItem.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/MaterialItem.h"
 #include <QColor>
 #include <QString>
 #include <memory>
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
index 571231fb5ff45ad0db07281610d303c8b93f4b66..f396a7f88dbabd656d35fb615e0828e0e92df29c 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ComponentEditor.h"
-#include "ComponentFlatView.h"
-#include "ComponentTreeView.h"
-#include "ComponentView.h"
-#include "GroupInfoBox.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentFlatView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentTreeView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentView.h"
+#include "GUI/coregui/Views/InfoWidgets/GroupInfoBox.h"
 #include <QBoxLayout>
 #include <QGroupBox>
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditor.h b/GUI/coregui/Views/PropertyEditor/ComponentEditor.h
index 9300c11065f67edd19fe4872778cd788cb4d2f22..83e899ffcc9fedc0af74c639ee68f071953e516c 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditor.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditor.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTEDITOR_H
 #define COMPONENTEDITOR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class ComponentView;
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp b/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp
index 1fd4309bb108e94a834d81f33d9af33c82c8f556..3534d89cedae3926830b94268e00a2d4d6b411f0 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "ComponentFlatView.h"
-#include "ComponentUtils.h"
-#include "LayoutUtils.h"
-#include "PropertyEditorFactory.h"
-#include "PropertyWidgetItem.h"
-#include "SessionItem.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentFlatView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentUtils.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
+#include "GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h"
+#include "GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QComboBox>
 #include <QDataWidgetMapper>
 #include <QGridLayout>
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentFlatView.h b/GUI/coregui/Views/PropertyEditor/ComponentFlatView.h
index c177731b9781693c1e32734d12d689137baae153..ae10681b43506390f822a7c49f3f5957a6711c14 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentFlatView.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentFlatView.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTFLATVIEW_H
 #define COMPONENTFLATVIEW_H
 
-#include "ComponentView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentView.h"
 #include <memory>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.cpp b/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.cpp
index 85a5f044105c588ba549f446426cdac01f098f63..b59493344089d9b9f530a56d6814ecb0bcf2df6a 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ComponentTreeActions.h"
-#include "SessionItem.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentTreeActions.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QAction>
 #include <QMenu>
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.h b/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.h
index 9cdb18c341767d90fc12aee04c00e49d3a1172a2..e399b2b7e33724d757223e0d21a6c2e3da3f4a10 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentTreeActions.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTREEACTIONS_H
 #define COMPONENTREEACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp b/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp
index c286ed2e420a3cd74864ce6d38c4ba32a7f4317c..28c6ae49e1e368b4849dd9bac0a672848cac0764 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "ComponentTreeView.h"
-#include "ComponentProxyModel.h"
-#include "ComponentTreeActions.h"
-#include "CustomEventFilters.h"
-#include "SessionModel.h"
-#include "SessionModelDelegate.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentTreeView.h"
+#include "GUI/coregui/Models/ComponentProxyModel.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentTreeActions.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/SessionModelDelegate.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QBoxLayout>
 #include <QStandardItemModel>
 #include <QTreeView>
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentTreeView.h b/GUI/coregui/Views/PropertyEditor/ComponentTreeView.h
index 3d066aa32962c6c432b2dc4fd26be596cd18c458..593240a22232abe14f3b0fa34360a22d1aa87b7e 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentTreeView.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentTreeView.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTTREEVIEW_H
 #define COMPONENTTREEVIEW_H
 
-#include "ComponentView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentView.h"
 #include <memory>
 
 class QTreeView;
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp b/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp
index af76dd4e4bbdce7458930ba34300e59df1102325..31001bf939d12f34bb06d857a8ca27f5f1091d56 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ComponentUtils.h"
-#include "SessionItem.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentUtils.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentUtils.h b/GUI/coregui/Views/PropertyEditor/ComponentUtils.h
index 3538be47b0a0a0b22a993ea061009f17b53d3b35..0a5c25c63c456444ed55e30f575a4d997d7af7cc 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentUtils.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentUtils.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTUTILS_H
 #define COMPONENTUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QList>
 #include <QStringList>
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentView.h b/GUI/coregui/Views/PropertyEditor/ComponentView.h
index f390f9583fcf422e287e9d57fd354de1acef2c0b..92ce5707a2bd6acc5f7f1c863e113a54a09e7a09 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentView.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentView.h
@@ -15,7 +15,7 @@
 #ifndef COMPONENTVIEW_H
 #define COMPONENTVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SessionItem;
diff --git a/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp b/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
index c16a4484151306eb5aede3a75fdc6179cbae05fd..ddf56816bacf9d631ed0769dd0d3bbe294cf34c1 100644
--- a/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
+++ b/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "CustomEditors.h"
-#include "ComboProperty.h"
-#include "CustomEventFilters.h"
-#include "ExternalProperty.h"
-#include "GUIHelpers.h"
-#include "GroupItemController.h"
-#include "MaterialItemUtils.h"
-#include "ScientificSpinBox.h"
+#include "GUI/coregui/Views/PropertyEditor/CustomEditors.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItemController.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Views/JobWidgets/ScientificSpinBox.h"
 #include <QApplication>
 #include <QBoxLayout>
 #include <QCheckBox>
diff --git a/GUI/coregui/Views/PropertyEditor/CustomEditors.h b/GUI/coregui/Views/PropertyEditor/CustomEditors.h
index 0511b073d3d42b4e10d523e2b017da8fe4537b24..e2f432b8dbd5d0e17f67ec80a0657d4439a7ab06 100644
--- a/GUI/coregui/Views/PropertyEditor/CustomEditors.h
+++ b/GUI/coregui/Views/PropertyEditor/CustomEditors.h
@@ -15,7 +15,7 @@
 #ifndef CUSTOMEDITORS_H
 #define CUSTOMEDITORS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QVariant>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp b/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp
index aecb59908b8ab0faffaaa3e9733517a503039c11..675567f7fd3c79f3816f1757d333cdd04429c8b1 100644
--- a/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MultiComboPropertyEditor.h"
-#include "ComboProperty.h"
-#include "CustomEventFilters.h"
+#include "GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
 #include <QComboBox>
 #include <QEvent>
 #include <QLineEdit>
diff --git a/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.h b/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.h
index 2015f271e0c0c40e3d022eccc81ddc85435d1deb..ae76c16bf1c271c8cd224cba3f658a2c06b645b1 100644
--- a/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.h
+++ b/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.h
@@ -15,7 +15,7 @@
 #ifndef MULTICOMBOPROPERTYEDITOR_H
 #define MULTICOMBOPROPERTYEDITOR_H
 
-#include "CustomEditors.h"
+#include "GUI/coregui/Views/PropertyEditor/CustomEditors.h"
 #include <QStyledItemDelegate>
 #include <memory>
 
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp b/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp
index b8053b8145b841ea28a34c5662605d19fe82b171..ba22ba693d12901e96eed3c70adf69281b9e34b3 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp
+++ b/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "PropertyEditorFactory.h"
-#include "ComboProperty.h"
-#include "CustomEditors.h"
-#include "CustomEventFilters.h"
-#include "ExternalProperty.h"
-#include "GroupItemController.h"
-#include "MultiComboPropertyEditor.h"
-#include "RealLimits.h"
-#include "ScientificSpinBox.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/PropertyEditor/CustomEditors.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/GroupItemController.h"
+#include "GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.h"
+#include "Fit/Tools/RealLimits.h"
+#include "GUI/coregui/Views/JobWidgets/ScientificSpinBox.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QLabel>
 #include <QLineEdit>
 #include <QSpinBox>
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h b/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h
index 64b995382153eee6b93907d6277defa87c486179..588b5df2aa60a3ea3dacb2136eecf67c3f68df04 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h
+++ b/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.h
@@ -15,7 +15,7 @@
 #ifndef PROPERTYEDITORFACTORY_H
 #define PROPERTYEDITORFACTORY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 class QModelIndex;
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp b/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp
index d4e2c73b7d01101015eb9fc17296ae36e0fe8e66..e93ef842978ec8a1642f4682809154df83b12d5d 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp
+++ b/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "PropertyWidgetItem.h"
-#include "CustomEditors.h"
-#include "SessionItem.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
-#include "SessionModelDelegate.h"
+#include "GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.h"
+#include "GUI/coregui/Views/PropertyEditor/CustomEditors.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/SessionModelDelegate.h"
 #include <QComboBox>
 #include <QDataWidgetMapper>
 #include <QDebug>
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.h b/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.h
index 5d1de7e5b7a328b60874cb1afd1904782dc70b02..4fe9e242a0b1dbdc52f20430c7d40e9e7add57b0 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.h
+++ b/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.h
@@ -15,7 +15,7 @@
 #ifndef PROPERTYWIDGETITEM_H
 #define PROPERTYWIDGETITEM_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class QLabel;
diff --git a/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp b/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp
index 9c756b761ac3a9644b3084cd453ff0bda8e1e0a3..8284df78b5af96c9466214fe53925a6a413702b3 100644
--- a/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp
+++ b/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp
@@ -12,23 +12,23 @@
 //
 // ************************************************************************** //
 
-#include "TestComponentView.h"
-#include "ComponentEditor.h"
-#include "ComponentFlatView.h"
-#include "ComponentTreeView.h"
-#include "GUIObjectBuilder.h"
-#include "ISample.h"
-#include "MaterialDataItems.h"
-#include "MaterialItem.h"
-#include "MaterialItemUtils.h"
-#include "MaterialModel.h"
-#include "MultiLayer.h"
-#include "SampleBuilderFactory.h"
-#include "SampleModel.h"
-#include "SessionModelDelegate.h"
-#include "StyleUtils.h"
-#include "item_constants.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/PropertyEditor/TestComponentView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentFlatView.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentTreeView.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "Core/Scattering/ISample.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionModelDelegate.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/Models/item_constants.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include "minisplitter.h"
 #include <QBoxLayout>
 #include <QDebug>
diff --git a/GUI/coregui/Views/PropertyEditor/TestComponentView.h b/GUI/coregui/Views/PropertyEditor/TestComponentView.h
index ce10f4516f1af166700bcaffd5ce0ea8647bb093..0ecc09260e6dee83b564f8cda52d32ca6bdcb1d9 100644
--- a/GUI/coregui/Views/PropertyEditor/TestComponentView.h
+++ b/GUI/coregui/Views/PropertyEditor/TestComponentView.h
@@ -15,7 +15,7 @@
 #ifndef TESTCOMPONENTVIEW_H
 #define TESTCOMPONENTVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp
index 3a3b69f364b3b225de699a508e14a41791386275..8f3804d55a8d108e50227a84d7938a7cca43d1c9 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "IPositionBuilder.h"
-#include "InterferenceFunctions.h"
-#include "Lattice2D.h"
-#include "RealSpace2DParacrystalUtils.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h"
 #include <cmath>
 #include <random>
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.cpp b/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.cpp
index acfd8cc4bd6cdc300e141a9292228ff2c6f9a20e..28cccdacbac0e74261d2a9f5579dc4e1c9e64d49 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Particle3DContainer.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h"
 #include "GUI/ba3d/model/particles.h"
 
 // copy constructor
diff --git a/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h b/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h
index 013f6f5d4f1c650227ebd2bf4c2f406e3ae18f87..d20e6ce63803f674107e3d0e4fecc9284efdf4cb 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLE3DCONTAINER_H
 #define PARTICLE3DCONTAINER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <memory>
 #include <vector>
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.cpp
index 872adbe10774e71d03e6c49ba6029daf974154db..090346e31f1403cbc6285b89e9f2fe5cb7959ff6 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "RealSpace2DParacrystalUtils.h"
-#include "FTDistributions2D.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "Lattice2D.h"
-#include "RealSpaceCanvas.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h
index 100b6a3de92d5876ebdfa455bb90a960541e72bc..7b6dc0104420c2b690e5cb2ea09e6d66a26c1be0 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACE2DPARACRYSTALUTILS_H
 #define REALSPACE2DPARACRYSTALUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 class InterferenceFunction2DParaCrystal;
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.cpp
index 9cd6db4d37201d6aeab4233f8125b18b0867b07d..6dde5e60a0748fd3a2c1f7f0778aa851742dc185 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.cpp
@@ -12,6 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceActions.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.h"
 
 RealSpaceActions::RealSpaceActions(QObject* parent) : QObject(parent) {}
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.h
index 0dbd4b8400e5442ac271bfa67ff32d6040f63413..1d91172c9c6aa4d609c2434bbe7db2e02d5d9e8a 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACEACTIONS_H
 #define REALSPACEACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 //! Collection of actions for RealSpaceWidget.
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp
index d5b0fe793d300b0b74d7844dc73abda6c1c754b4..bb90a22b35ba984036365abeafa3f6ce6ee98680 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp
@@ -12,30 +12,30 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceBuilder.h"
-#include "ExternalProperty.h"
-#include "InterferenceFunctionItems.h"
-#include "InterferenceFunctions.h"
-#include "Lattice2DItems.h"
-#include "LayerItem.h"
-#include "MesoCrystalItem.h"
-#include "MultiLayerItem.h"
-#include "Particle.h"
-#include "Particle3DContainer.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "RealSpaceBuilderUtils.h"
-#include "RealSpaceCanvas.h"
-#include "RealSpaceModel.h"
-#include "RealSpacePositionBuilder.h"
-#include "SessionItem.h"
-#include "TransformTo3D.h"
-#include "Units.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h"
+#include "Core/Parametrization/Units.h"
+#include "GUI/coregui/Models/VectorItem.h"
 #include <QDebug>
 #include "GUI/ba3d/model/layer.h"
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h
index 3dbc1082721f020fb7fd8e83217735efca23025c..4f9d108f743025172cf752b4fd7240172322222a 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h
@@ -16,7 +16,7 @@
 #define REALSPACEBUILDER_H
 
 #include "GUI/ba3d/view/camera.h"
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QVector3D>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp
index 0a0a8d18db42704f12b5d93b0ab5883758fdf0a3..a6bee16c8564ac4c9e58e3235044e53f63385fbc 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp
@@ -12,41 +12,41 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceBuilderUtils.h"
-#include "Exceptions.h"
-#include "FormFactorCrystal.h"
-#include "IFormFactorDecorator.h"
-#include "IParticle.h"
-#include "InterferenceFunctionItems.h"
-#include "InterferenceFunctions.h"
-#include "Lattice2DItems.h"
-#include "LayerItem.h"
-#include "MaterialItem.h"
-#include "MaterialModel.h"
-#include "MesoCrystal.h"
-#include "MesoCrystalItem.h"
-#include "MultiLayerItem.h"
-#include "Particle.h"
-#include "Particle3DContainer.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistribution.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "RealSpaceBuilder.h"
-#include "RealSpaceCanvas.h"
-#include "RealSpaceMesoCrystalUtils.h"
-#include "RealSpaceModel.h"
-#include "RotationItems.h"
-#include "Rotations.h"
-#include "SessionItem.h"
-#include "TransformTo3D.h"
-#include "TransformationItem.h"
-#include "Units.h"
-#include "VectorItem.h"
-#include <AppSvc.h>
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Particle/FormFactorCrystal.h"
+#include "Core/DecoratedFormFactor/IFormFactorDecorator.h"
+#include "Core/Particle/IParticle.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h"
+#include "GUI/coregui/Models/RotationItems.h"
+#include "Core/Scattering/Rotations.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h"
+#include "GUI/coregui/Models/TransformationItem.h"
+#include "Core/Parametrization/Units.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h
index 7a988d5c34466e287160504efb21959411cfa681..2cc2c745af05a88c011fe95c7d0e2d2d4c1e75d8 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h
@@ -15,10 +15,10 @@
 #ifndef REALSPACEBUILDERUTILS_H
 #define REALSPACEBUILDERUTILS_H
 
-#include "Rotations.h"
-#include "WinDllMacros.h"
+#include "Core/Scattering/Rotations.h"
+#include "Wrap/WinDllMacros.h"
 #include <QVector3D>
-#include <Vectors3D.h>
+#include "Core/Vector/Vectors3D.h"
 #include <memory>
 #include <utility>
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp
index 5a6dda6106cb9b5a5170a52e70adc49c5775c557..c2b18422e1c5639cff57320b7016f0f926d64f6a 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceCanvas.h"
-#include "AppSvc.h"
-#include "FilterPropertyProxy.h"
-#include "RealSpaceBuilder.h"
-#include "RealSpaceModel.h"
-#include "RealSpaceView.h"
-#include "SampleModel.h"
-#include "SessionItemUtils.h"
-#include "WarningSign.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QApplication>
 #include <QFileDialog>
 #include <QMessageBox>
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h
index 8a3222f0cdb09db57e6ac2e95d339d0018c76283..c7ae04868fc8b1318199b87d8cb6f5a7a8fcc285 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACECANVAS_H
 #define REALSPACECANVAS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QItemSelectionModel>
 #include <QModelIndex>
 #include <QWidget>
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp
index 6382382d3e0e4a75419c6e75377f402856efe177..f5c0d495b283c8556ebdff644d827656c7071a99 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp
@@ -12,24 +12,24 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceMesoCrystalUtils.h"
-#include "Exceptions.h"
-#include "HardParticles.h"
-#include "IFormFactor.h"
-#include "IParticle.h"
-#include "Lattice2DItems.h"
-#include "MesoCrystal.h"
-#include "MesoCrystalItem.h"
-#include "Particle.h"
-#include "Particle3DContainer.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShell.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistribution.h"
-#include "ParticleDistributionItem.h"
-#include "RealSpaceBuilderUtils.h"
-#include "TransformTo3D.h"
-#include "Units.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Core/Scattering/IFormFactor.h"
+#include "Core/Particle/IParticle.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h"
+#include "Core/Parametrization/Units.h"
 #include "GUI/ba3d/model/particles.h"
 
 namespace
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h
index eac399b6b5c20e69b30a42a285f275d608e93b66..71604fcd6716f9d66bbff8e8a7c6f3d383bc27f4 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h
@@ -15,8 +15,8 @@
 #ifndef REALSPACEMESOCRYSTALUTILS_H
 #define REALSPACEMESOCRYSTALUTILS_H
 
-#include "Rotations.h"
-#include "WinDllMacros.h"
+#include "Core/Scattering/Rotations.h"
+#include "Wrap/WinDllMacros.h"
 #include <QVector3D>
 
 class Particle;
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.cpp
index ed8c323ef356f05a285f4a406d77e2014d433200..f974c900a2c3e7af656ad6a031cdefffa8c157f0 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.cpp
@@ -12,4 +12,4 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceModel.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h"
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h
index 4e824e90b48fb9fd7cd8d470f0d7fb600c5916dd..bdf97113868838a60d002f1a88022c6ca97520d0 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACEMODEL_H
 #define REALSPACEMODEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include "GUI/ba3d/model/model.h"
 
 class RealSpaceModel : public RealSpace::Model
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp
index 4f7a6d1808ad356c1ec0a0188f19f3ef8a5f8e01..164490fe6fa5afe5046577aa9c3e162f8c5b4575 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RealSpacePositionBuilder.h"
-#include "IPositionBuilder.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.h"
 
 RealSpacePositionBuilder::RealSpacePositionBuilder() : mP_pos_builder{new DefaultPositionBuilder()}
 {
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.h
index b6bd1a0a00458fb2d84c096940deb126fceb07c5..759b30dc8c15da2d9dc5c97666dc66d874d1a1ff 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACEPOSITIONBUILDER_H
 #define REALSPACEPOSITIONBUILDER_H
 
-#include "INodeVisitor.h"
+#include "Core/Parametrization/INodeVisitor.h"
 #include <memory>
 #include <vector>
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.cpp
index e58d9150580356e266d2868466e801f4ad76d811..d74edef12eebf8f8b830914c151efcea86428290 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceToolBar.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 
 #include <QCheckBox>
 #include <QToolButton>
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.h
index 714cb4c382b3175625c36d79d08b1a82d47587c2..2cc9605b4a2eaf4715651244f29a86415b2f0355 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACETOOLBAR_H
 #define REALSPACETOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 
 class QToolButton;
 class QCheckBox;
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.cpp
index 3d5a0dac0124b41a5e7f531f587201803e596a6c..c84d3c490717626d22043254768bb4f86918f7b7 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceView.h"
-#include "RealSpaceModel.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h"
 #include <QVBoxLayout>
 #include "GUI/ba3d/widget.h"
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.h
index b980a2bff48c038cdae68e95692e9b8ad75230e0..1e664e87b8d4a6aa02cfdb876f0d0366bc41dc3e 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceView.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACEVIEW_H
 #define REALSPACEVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class RealSpaceModel;
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.cpp
index 520c4ae46e9511911c0fb6fa4117ad33aa1203d2..9eac48dbcb728fccb380fa7eeed5abbfc7591eb3 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "RealSpaceWidget.h"
-#include "RealSpaceActions.h"
-#include "RealSpaceCanvas.h"
-#include "RealSpaceToolBar.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceActions.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.h"
 #include <QLabel>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h
index 5b876e212179a4f076d9388ffe85c032f34ed4c5..1a30cf2ed40bda18812e1d2b18c113975b3ccc69 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACEWIDGET_H
 #define REALSPACEWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 #include <QTreeView>
diff --git a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp
index fcee17239fb4d1040881c4b309a4500399a20e1b..f3b149d71b807a09795fd9fed8f8fb21a66e90ce 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "TransformTo3D.h"
-#include "ExternalProperty.h"
-#include "FormFactorItems.h"
-#include "GUIDomainSampleVisitor.h"
-#include "HardParticles.h"
-#include "LayerItem.h"
-#include "MultiLayerItem.h"
-#include "ParticleComposition.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleItem.h"
-#include "RealSpaceCanvas.h"
-#include "SessionItem.h"
-#include "Units.h"
-#include "VectorItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Models/GUIDomainSampleVisitor.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "Core/Parametrization/Units.h"
+#include "GUI/coregui/Models/VectorItem.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h
index bdc926e231f8b59725ee7544975e9a0ebb781483..1f34fabfda9b721a5e0c3a79a1a94e99cecd4645 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h
+++ b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h
@@ -15,8 +15,8 @@
 #ifndef TRANSFORMTO3D_H
 #define TRANSFORMTO3D_H
 
-#include "WinDllMacros.h"
-#include <Vectors3D.h>
+#include "Wrap/WinDllMacros.h"
+#include "Core/Vector/Vectors3D.h"
 #include "GUI/ba3d/model/layer.h"
 #include "GUI/ba3d/model/particles.h"
 #include <memory>
diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
index 9f24275d3b9d9959e77e5986a5bac4f8057b74fd..19a91d752bcb4870a7a772608273a6731b5c54bb 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "ConnectableView.h"
-#include "DesignerHelper.h"
-#include "GUIHelpers.h"
-#include "NodeEditorConnection.h"
-#include "NodeEditorPort.h"
-#include "SessionItem.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorPort.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QObject>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.h b/GUI/coregui/Views/SampleDesigner/ConnectableView.h
index b84a0b978d7034f41aa0df5fb0c60afd61843e81..ea905ccd7729ee0de0e51e1406aa0030a4332247 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.h
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.h
@@ -15,9 +15,9 @@
 #ifndef CONNECTABLEVIEW_H
 #define CONNECTABLEVIEW_H
 
-#include "IView.h"
-#include "NodeEditorPort.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/SampleDesigner/IView.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorPort.h"
+#include "Wrap/WinDllMacros.h"
 
 class QPainter;
 class QStyleOptionGraphicsItem;
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerHelper.cpp b/GUI/coregui/Views/SampleDesigner/DesignerHelper.cpp
index 8db3a3528cc661e226ffe79f200b9f9139639fa6..eb21b54c67a80c7c8adf8a63d0a74939dc770ca8 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerHelper.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerHelper.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "DesignerHelper.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QPainter>
 #include <QtGlobal>
 #include <cmath>
 #include <iostream>
-#include "StyleUtils.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerHelper.h b/GUI/coregui/Views/SampleDesigner/DesignerHelper.h
index 983354455b9fe473599825861e534e3dcaac12a8..d749576d010b264e643192995d2771678b2dd30d 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerHelper.h
+++ b/GUI/coregui/Views/SampleDesigner/DesignerHelper.h
@@ -15,7 +15,7 @@
 #ifndef DESIGNERHELPER_H
 #define DESIGNERHELPER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QColor>
 #include <QGradient>
 #include <QGraphicsItem>
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp b/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp
index 675aac1f22ab66f84c4b5fe43297ce0530fb02be..d5357b1ba66156a159eb8980290ef20b0dd6bedb 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "DesignerMimeData.h"
-#include "DesignerHelper.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerMimeData.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
 #include <QBitmap>
 #include <QByteArray>
 #include <QDataStream>
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerMimeData.h b/GUI/coregui/Views/SampleDesigner/DesignerMimeData.h
index 8673c4334f020c41279e7d6568ef20a7050fea00..3de6eb441c3e9da037d7f840bca3e15ea329affa 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerMimeData.h
+++ b/GUI/coregui/Views/SampleDesigner/DesignerMimeData.h
@@ -15,7 +15,7 @@
 #ifndef DESIGNERMIMEDATA_H
 #define DESIGNERMIMEDATA_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMimeData>
 
 class QDrag;
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp b/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
index 3397785cd12316611cf64d242106c3cd9284081b..b6e573363de5512c166d9b861caec8a844d27b5d 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
@@ -12,27 +12,27 @@
 //
 // ************************************************************************** //
 
-#include "DesignerScene.h"
-#include "ConnectableView.h"
-#include "DesignerHelper.h"
-#include "DesignerMimeData.h"
-#include "FilterPropertyProxy.h"
-#include "GUIExamplesFactory.h"
-#include "IView.h"
-#include "InstrumentModel.h"
-#include "ItemFactory.h"
-#include "LayerView.h"
-#include "NodeEditor.h"
-#include "NodeEditorConnection.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "SampleBuilderFactory.h"
-#include "SampleModel.h"
-#include "SampleViewAligner.h"
-#include "SampleViewFactory.h"
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerMimeData.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "GUI/coregui/Models/GUIExamplesFactory.h"
+#include "GUI/coregui/Views/SampleDesigner/IView.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/Views/SampleDesigner/LayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditor.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewAligner.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewFactory.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QItemSelection>
 #include <QPainter>
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerScene.h b/GUI/coregui/Views/SampleDesigner/DesignerScene.h
index 3fa26cb0217f4ebb98e5be68ba07666e89262d29..23757296e52528e0cc75c97585929a444176134d 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerScene.h
+++ b/GUI/coregui/Views/SampleDesigner/DesignerScene.h
@@ -15,7 +15,7 @@
 #ifndef DESIGNERSCENE_H
 #define DESIGNERSCENE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QGraphicsScene>
 #include <QMap>
 #include <QModelIndex>
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerView.cpp b/GUI/coregui/Views/SampleDesigner/DesignerView.cpp
index cfa41618d2ccd824e016290042cd2bf9f2af8879..5ea591fb3d5c403f65fd110f6a9fb130397b5d97 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerView.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "DesignerView.h"
-#include "DesignerMimeData.h"
-#include "DesignerScene.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerMimeData.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 #include <QDragEnterEvent>
 #include <QGraphicsScene>
 #include <QGraphicsView>
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerView.h b/GUI/coregui/Views/SampleDesigner/DesignerView.h
index 6cef84948fa68a60d8f0642703d6f0b1c540b2a9..c2e3ba6c0e19ef836fa67e0d3b54643581f7c16a 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerView.h
+++ b/GUI/coregui/Views/SampleDesigner/DesignerView.h
@@ -15,7 +15,7 @@
 #ifndef DESIGNERVIEW_H
 #define DESIGNERVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QGraphicsView>
 
 class QGraphicsView;
diff --git a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
index 8114a45d05272fd90ff31aab66bb56aaf3ba5e92..6d358aeb9d4e54f47394b74ad7b74f9dd66df288 100644
--- a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "ILayerView.h"
-#include "DesignerHelper.h"
-#include "DesignerScene.h"
-#include "ExternalProperty.h"
-#include "GUIHelpers.h"
-#include "LayerItem.h"
-#include "MultiLayerView.h"
-#include "SampleModel.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/ILayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Views/SampleDesigner/MultiLayerView.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QGraphicsSceneMouseEvent>
 
 QLineF MultiLayerCandidate::getInterfaceToScene()
diff --git a/GUI/coregui/Views/SampleDesigner/ILayerView.h b/GUI/coregui/Views/SampleDesigner/ILayerView.h
index 172dd17572cb842badb3b8678b8b0630566a4916..f721b2955cbe6d8718a785c2e9a0680ebb577cec 100644
--- a/GUI/coregui/Views/SampleDesigner/ILayerView.h
+++ b/GUI/coregui/Views/SampleDesigner/ILayerView.h
@@ -15,7 +15,7 @@
 #ifndef ILAYERVIEW_H
 #define ILAYERVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 class MultiLayerView;
 class MultiLayerCandidate;
diff --git a/GUI/coregui/Views/SampleDesigner/IView.cpp b/GUI/coregui/Views/SampleDesigner/IView.cpp
index 16115e224bee76f0fcb64d3e9f39bc5d7769d219..318cb34dab582c7374a2d74fa8a8004ea4e3a100 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/IView.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "IView.h"
-#include "ModelMapper.h"
-#include "SessionGraphicsItem.h"
+#include "GUI/coregui/Views/SampleDesigner/IView.h"
+#include "GUI/coregui/Models/ModelMapper.h"
+#include "GUI/coregui/Models/SessionGraphicsItem.h"
 #include <QString>
 
 IView::IView(QGraphicsItem* parent) : QGraphicsObject(parent), m_item(0)
diff --git a/GUI/coregui/Views/SampleDesigner/IView.h b/GUI/coregui/Views/SampleDesigner/IView.h
index b356be9fbceb291ba83e7d6fb2cddc4fcbfe328f..246960ea14d1af498efaab1f2b78541697277e7c 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.h
+++ b/GUI/coregui/Views/SampleDesigner/IView.h
@@ -15,8 +15,8 @@
 #ifndef IVIEW_H
 #define IVIEW_H
 
-#include "WinDllMacros.h"
-#include "ViewTypes.h"
+#include "Wrap/WinDllMacros.h"
+#include "GUI/coregui/Views/SampleDesigner/ViewTypes.h"
 #include <QGraphicsObject>
 #include <memory>
 
diff --git a/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.cpp b/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.cpp
index 982afaf7a426412c792635fcc739c186389e396d..b52b739f1838820beabbb0dad0dd334fb649d316 100644
--- a/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.cpp
+++ b/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "InterferenceFunctionViews.h"
-#include "DesignerHelper.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 InterferenceFunction1DLatticeView::InterferenceFunction1DLatticeView(QGraphicsItem* parent)
     : ConnectableView(parent)
diff --git a/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.h b/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.h
index 921148f5c81604e38b80f92c75e4fe0483511090..dfeb38d1967e5a823896b1e22b34cdd2d0b88c9f 100644
--- a/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.h
+++ b/GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.h
@@ -15,7 +15,7 @@
 #ifndef INTERFERENCEFUNCTIONVIEWS_H
 #define INTERFERENCEFUNCTIONVIEWS_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 class BA_CORE_API_ InterferenceFunction1DLatticeView : public ConnectableView
 {
diff --git a/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp b/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp
index 1018315b315ed6b1600c54f68def971d3bdff24d..33abb62566267f2db7ed9642d4ec9d42f382ba73 100644
--- a/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ItemTreeView.h"
-#include "SessionModel.h"
+#include "GUI/coregui/Views/SampleDesigner/ItemTreeView.h"
+#include "GUI/coregui/Models/SessionModel.h"
 #include <QDragMoveEvent>
 #include <QMimeData>
 #include <QtCore/QXmlStreamWriter>
diff --git a/GUI/coregui/Views/SampleDesigner/ItemTreeView.h b/GUI/coregui/Views/SampleDesigner/ItemTreeView.h
index 1980ab60ecf56f4fc72dbb5ff042976734608dee..b080e0dcaf61d13594240a3da3544a01ec77630e 100644
--- a/GUI/coregui/Views/SampleDesigner/ItemTreeView.h
+++ b/GUI/coregui/Views/SampleDesigner/ItemTreeView.h
@@ -15,7 +15,7 @@
 #ifndef ITEMTREEVIEW_H
 #define ITEMTREEVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QTreeView>
 
 class BA_CORE_API_ ItemTreeView : public QTreeView
diff --git a/GUI/coregui/Views/SampleDesigner/LayerView.cpp b/GUI/coregui/Views/SampleDesigner/LayerView.cpp
index 973ad89b1a2719d9ba4190261f50e0a4c81ca2c1..614bdf30d88fe7594f2ffbd37136c4251dd0c547 100644
--- a/GUI/coregui/Views/SampleDesigner/LayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/LayerView.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "LayerView.h"
-#include "LayerItem.h"
-#include "MultiLayerView.h"
-#include "ParticleLayoutView.h"
-#include "SessionItem.h"
-#include "tooltipdatabase.h"
-#include "DesignerHelper.h"
+#include "GUI/coregui/Views/SampleDesigner/LayerView.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Views/SampleDesigner/MultiLayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/mainwindow/tooltipdatabase.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
 
diff --git a/GUI/coregui/Views/SampleDesigner/LayerView.h b/GUI/coregui/Views/SampleDesigner/LayerView.h
index 841c7351186f2f1e2e5c11e577f537701d3a4bcc..32ac77878f7adf7ee3c39736a56bafdd531261f4 100644
--- a/GUI/coregui/Views/SampleDesigner/LayerView.h
+++ b/GUI/coregui/Views/SampleDesigner/LayerView.h
@@ -15,7 +15,7 @@
 #ifndef LAYERVIEW_H
 #define LAYERVIEW_H
 
-#include "ILayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/ILayerView.h"
 
 //! Class that represents view of Layer
 class BA_CORE_API_ LayerView : public ILayerView
diff --git a/GUI/coregui/Views/SampleDesigner/MesoCrystalView.cpp b/GUI/coregui/Views/SampleDesigner/MesoCrystalView.cpp
index e58562ac17bf98380b57f7957fa0cdd5abdbcba1..d8f4eb2aaf7a3531220db3283fc591d78a1465eb 100644
--- a/GUI/coregui/Views/SampleDesigner/MesoCrystalView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/MesoCrystalView.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "MesoCrystalView.h"
-#include "MesoCrystalItem.h"
-#include "ParticleItem.h"
-#include "SessionItem.h"
-#include "DesignerHelper.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/MesoCrystalView.h"
+#include "GUI/coregui/Models/MesoCrystalItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 MesoCrystalView::MesoCrystalView(QGraphicsItem* parent) : ConnectableView(parent)
 {
diff --git a/GUI/coregui/Views/SampleDesigner/MesoCrystalView.h b/GUI/coregui/Views/SampleDesigner/MesoCrystalView.h
index 93602b6356c9269e31c084ac8539f1dab710531f..bc2481518260edad8b1e1f5c8d0838675bc94394 100644
--- a/GUI/coregui/Views/SampleDesigner/MesoCrystalView.h
+++ b/GUI/coregui/Views/SampleDesigner/MesoCrystalView.h
@@ -15,7 +15,7 @@
 #ifndef MESOCRYSTALVIEW_H
 #define MESOCRYSTALVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 //! Class representing view of a meso crystal item
 class BA_CORE_API_ MesoCrystalView : public ConnectableView
diff --git a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
index baefba997227417428d7ef86af0482d113008fac..cebfab66f84e80f329f97ed373032049f3315735 100644
--- a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "MultiLayerView.h"
-#include "DesignerHelper.h"
-#include "DesignerMimeData.h"
-#include "DesignerScene.h"
-#include "LayerView.h"
-#include "SampleModel.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/MultiLayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerMimeData.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/Views/SampleDesigner/LayerView.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QGraphicsSceneMouseEvent>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/SampleDesigner/MultiLayerView.h b/GUI/coregui/Views/SampleDesigner/MultiLayerView.h
index f950ec05ac50a10d7f7a016136c33e0a5e8a7aaf..8a169f0dfb3ceaae662c27838bf6edabf9fb0241 100644
--- a/GUI/coregui/Views/SampleDesigner/MultiLayerView.h
+++ b/GUI/coregui/Views/SampleDesigner/MultiLayerView.h
@@ -15,7 +15,7 @@
 #ifndef MULTILAYERVIEW_H
 #define MULTILAYERVIEW_H
 
-#include "ILayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/ILayerView.h"
 
 class DesignerMimeData;
 class QGraphicsSceneDragDropEvent;
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditor.cpp b/GUI/coregui/Views/SampleDesigner/NodeEditor.cpp
index 3b73f13c1fc6ed857c040a286a211108d2e61964..a583330e7c90db66b0a1276f7b0903be98813c43 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditor.cpp
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditor.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "NodeEditor.h"
-#include "DesignerView.h"
-#include "NodeEditorConnection.h"
-#include "NodeEditorPort.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditor.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerView.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorPort.h"
 #include <QEvent>
 #include <QGraphicsScene>
 #include <QGraphicsSceneMouseEvent>
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditor.h b/GUI/coregui/Views/SampleDesigner/NodeEditor.h
index c33a92067cdadf44b36d924576f69203d5d08f0a..2138f4543735dd0a5a7766e1c5a1e31aff8502e3 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditor.h
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditor.h
@@ -21,7 +21,7 @@
  * Copyright (c) 2012, STANISLAW ADASZEWSKI
  */
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class QGraphicsScene;
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp b/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp
index 877dee01f4b6a423e8b7131b69f17b4980b6b6ef..2ad1f814bb7d21d4e5204179028dfd6b70d3ef1c 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "NodeEditorConnection.h"
-#include "ConnectableView.h"
-#include "NodeEditorPort.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorPort.h"
 #include <QBrush>
 #include <QGraphicsScene>
 #include <QPainter>
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h b/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h
index 0b6b63c4ad4209afe61b2d6af069f2f040184f9f..666c9791f78907effdb1c240e84a2048e6eeba0c 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h
@@ -21,8 +21,8 @@
  * Copyright (c) 2012, STANISLAW ADASZEWSKI
  */
 
-#include "WinDllMacros.h"
-#include "ViewTypes.h"
+#include "Wrap/WinDllMacros.h"
+#include "GUI/coregui/Views/SampleDesigner/ViewTypes.h"
 #include <QGraphicsPathItem>
 
 class NodeEditorPort;
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp b/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp
index 70f2763deabf008cae5ee7f44997197460029807..a36289e6923ffb5761a8f0f9ef96352b6633ac9f 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "NodeEditorPort.h"
-#include "NodeEditorConnection.h"
-#include "DesignerHelper.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorPort.h"
+#include "GUI/coregui/Views/SampleDesigner/NodeEditorConnection.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QGraphicsScene>
 #include <QPainter>
 #include <QPen>
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditorPort.h b/GUI/coregui/Views/SampleDesigner/NodeEditorPort.h
index 0f9a9a495b96aa3a639841950f7e8fd3daecd9fc..36dfb95bcad3d43cc1a4b6690016fc3a63ef89f8 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditorPort.h
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditorPort.h
@@ -21,8 +21,8 @@
  * Copyright (c) 2012, STANISLAW ADASZEWSKI
  */
 
-#include "WinDllMacros.h"
-#include "ViewTypes.h"
+#include "Wrap/WinDllMacros.h"
+#include "GUI/coregui/Views/SampleDesigner/ViewTypes.h"
 #include <QGraphicsPathItem>
 #include <QString>
 
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp
index a7b84adca9ca47ce86fd484b8bc77b20f2b684f6..210dc877efe7ab81ebe2b1b62f643412796079c9 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParticleCompositionView.h"
-#include "ParticleItem.h"
-#include "SessionItem.h"
-#include "DesignerHelper.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleCompositionView.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 ParticleCompositionView::ParticleCompositionView(QGraphicsItem* parent) : ConnectableView(parent)
 {
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.h b/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.h
index 5286166927e923d36e8ea4196f99cb2101ea6869..6fe800483a9a425639008e875040ad9e5cb3aeed 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.h
+++ b/GUI/coregui/Views/SampleDesigner/ParticleCompositionView.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLECOMPOSITIONVIEW_H
 #define PARTICLECOMPOSITIONVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 //! Class representing view of Particle item
 class BA_CORE_API_ ParticleCompositionView : public ConnectableView
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp
index 9d9ad6925769cd311b92786b9301820d38b4fdda..9fd6657a7f7d11cab101ec775eeb446eab3578a9 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParticleCoreShellView.h"
-#include "ParticleCoreShellItem.h"
-#include "DesignerHelper.h"
-#include "SessionItem.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 ParticleCoreShellView::ParticleCoreShellView(QGraphicsItem* parent) : ConnectableView(parent)
 {
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.h b/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.h
index 81c57f2367ff7b2f7b1ed0783957d06ab9154654..5a47cdc1864daad5c5982eba82076f99bea40891 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.h
+++ b/GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLECORESHELLVIEW_H
 #define PARTICLECORESHELLVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 //! Class representing view of Particle item
 class BA_CORE_API_ ParticleCoreShellView : public ConnectableView
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp
index 84f85ce456321319ab891dc01bf85393a91d4e52..1756f42832a808dfc914c2970b7d0d3d9065723b 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ParticleDistributionView.h"
-#include "SessionItem.h"
-#include "DesignerHelper.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleDistributionView.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 
 ParticleDistributionView::ParticleDistributionView(QGraphicsItem* parent) : ConnectableView(parent)
 {
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.h b/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.h
index e3a26b70a74b833bac6eddefeb3baaa53e2cd23a..29b60a48d3d0c25271c6d1ce6f0578af39a1e176 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.h
+++ b/GUI/coregui/Views/SampleDesigner/ParticleDistributionView.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLEDISTRIBUTIONVIEW_H
 #define PARTICLEDISTRIBUTIONVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 //! Class representing view of distributed particle item
 class BA_CORE_API_ ParticleDistributionView : public ConnectableView
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp
index cfaa12ea136b7bd48e09ce626210348a09e30c60..68efe76c43eb1d8efb7e0b2591c74452e442d8f5 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "ParticleLayoutView.h"
-#include "DesignerHelper.h"
-#include "GUIHelpers.h"
-#include "ParticleView.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleView.h"
+#include "GUI/coregui/Models/SessionItem.h"
 
 ParticleLayoutView::ParticleLayoutView(QGraphicsItem* parent) : ConnectableView(parent)
 {
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h b/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h
index 60c823d16e501674109178df242e3a33f7095ecf..416fdc91f2be269adcaf9a26f40d1fd05b1fbbbe 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h
+++ b/GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLELAYOUTVIEW_H
 #define PARTICLELAYOUTVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 class BA_CORE_API_ ParticleLayoutView : public ConnectableView
 {
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleView.cpp b/GUI/coregui/Views/SampleDesigner/ParticleView.cpp
index 66fa70e1de01d2e271132fa99051347a126bdadb..a2a2e260dac92dc3698552827a2a8f96f997acea 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ParticleView.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "ParticleView.h"
-#include "FormFactorItems.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "ParticleItem.h"
-#include "DesignerHelper.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleView.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QObject>
 #include <QPainter>
 #include <QStyleOptionGraphicsItem>
diff --git a/GUI/coregui/Views/SampleDesigner/ParticleView.h b/GUI/coregui/Views/SampleDesigner/ParticleView.h
index cf8ba3818f5331a0b8d53ef9906b45b5e2802020..bd9eb6ffd1f4f30a7f01e27e160e972c09b7c06d 100644
--- a/GUI/coregui/Views/SampleDesigner/ParticleView.h
+++ b/GUI/coregui/Views/SampleDesigner/ParticleView.h
@@ -15,7 +15,7 @@
 #ifndef PARTICLEVIEW_H
 #define PARTICLEVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 #include <QPixmap>
 
 //! Class representing view of Particle item
diff --git a/GUI/coregui/Views/SampleDesigner/RealSpacePanel.cpp b/GUI/coregui/Views/SampleDesigner/RealSpacePanel.cpp
index abd6ca0486243651f896f2861a19e179b5078926..12209f18d99f81b55728af6271daa45f8e5e76b4 100644
--- a/GUI/coregui/Views/SampleDesigner/RealSpacePanel.cpp
+++ b/GUI/coregui/Views/SampleDesigner/RealSpacePanel.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "RealSpacePanel.h"
+#include "GUI/coregui/Views/SampleDesigner/RealSpacePanel.h"
 #ifdef BORNAGAIN_OPENGL
-#include "RealSpaceWidget.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h"
 #endif
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/SampleDesigner/RealSpacePanel.h b/GUI/coregui/Views/SampleDesigner/RealSpacePanel.h
index c1fb3fd9f2fba049fe1d3a3536f5322929620e18..2a355d3242986319aefec85a632f59ffe9148865 100644
--- a/GUI/coregui/Views/SampleDesigner/RealSpacePanel.h
+++ b/GUI/coregui/Views/SampleDesigner/RealSpacePanel.h
@@ -15,7 +15,7 @@
 #ifndef REALSPACEPANEL_H
 #define REALSPACEPANEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SampleModel;
diff --git a/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp b/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp
index 5ec64c4b67fe6aa470a5889b1bf67602d7fc1240..df6a6d00d81ec931b0a015a56d8e5c58d684730f 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SampleDesigner.h"
-#include "ApplicationModels.h"
-#include "DesignerScene.h"
-#include "DesignerView.h"
-#include "FilterPropertyProxy.h"
-#include "ISample.h"
-#include "MultiLayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleDesigner.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerView.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "Core/Scattering/ISample.h"
+#include "GUI/coregui/Views/SampleDesigner/MultiLayerView.h"
 
 SampleDesigner::SampleDesigner(QWidget* parent)
     : SampleDesignerInterface(parent), m_designerScene(0), m_designerView(0)
diff --git a/GUI/coregui/Views/SampleDesigner/SampleDesigner.h b/GUI/coregui/Views/SampleDesigner/SampleDesigner.h
index 73bfe18d5f036703413b4a92c088ce07b137fbd5..6ff1cefda3adb092cde4990b83f433530888d7ec 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleDesigner.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleDesigner.h
@@ -15,8 +15,8 @@
 #ifndef SAMPLEDESIGNER_H
 #define SAMPLEDESIGNER_H
 
-#include "DesignerScene.h"
-#include "DesignerView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerView.h"
 #include <QObject>
 #include <QStackedWidget>
 
diff --git a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp
index b65dba6fb4878f0f0c39b95611061dc4b05926ea..1ce407bbae4d68e1188173a44320bedb1062624b 100644
--- a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SamplePropertyWidget.h"
-#include "ComponentEditor.h"
-#include "SessionItem.h"
+#include "GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentEditor.h"
+#include "GUI/coregui/Models/SessionItem.h"
 #include <QItemSelection>
 #include <QModelIndexList>
 #include <QSortFilterProxyModel>
diff --git a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.h b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.h
index 3fd74e9d9a662028d504ef226ae98e7ce1df0cef..e5ce7725d30fb0d25132441cb926265ff2822f88 100644
--- a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.h
+++ b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEPROPERTYWIDGET_H
 #define SAMPLEPROPERTYWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QItemSelectionModel;
diff --git a/GUI/coregui/Views/SampleDesigner/SampleToolBar.cpp b/GUI/coregui/Views/SampleDesigner/SampleToolBar.cpp
index 9e293bde07ca9990e9f5327f181c26d8df3626e6..699f98f251159de98fe3e44dd3abf00f13b76da9 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleToolBar.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleToolBar.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SampleToolBar.h"
-#include "DesignerView.h"
-#include "MaterialItemUtils.h"
-#include "SampleViewActions.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleToolBar.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerView.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewActions.h"
 #include <QAction>
 #include <QButtonGroup>
 #include <QComboBox>
diff --git a/GUI/coregui/Views/SampleDesigner/SampleToolBar.h b/GUI/coregui/Views/SampleDesigner/SampleToolBar.h
index 1dc46f3d21d67503c5ac8023aec7ed1818084f0b..0b6cd10b1f92829d5ca1541e4128ea1420357164 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleToolBar.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleToolBar.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLETOOLBAR_H
 #define SAMPLETOOLBAR_H
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 #include <QTreeView>
 
 class QAction;
diff --git a/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.cpp b/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.cpp
index 47173bbec323d1d0fd1cd8d73362f5b66dd91246..1e065e36aeca7e408974137118d088f0a770d235 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SampleTreeWidget.h"
-#include "FilterPropertyProxy.h"
-#include "ItemFactory.h"
-#include "ItemTreeView.h"
-#include "SampleModel.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "GUI/coregui/Models/ItemFactory.h"
+#include "GUI/coregui/Views/SampleDesigner/ItemTreeView.h"
+#include "GUI/coregui/Models/SampleModel.h"
 #include <QAction>
 #include <QMenu>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h b/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h
index 6f2fdc83c2427a92069d6e389f2db233317fca55..ba747bbef1e598794ebe02714eb0a08f0e9cbea2 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLETREEWIDGET_H
 #define SAMPLETREEWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QWidget>
 
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewActions.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewActions.cpp
index 93c3925c35f3b240da3364ca2195c978fbdbbabc..3462bda02c5565b8e38cefd6f4c85c87a9a17adb 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewActions.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewActions.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SampleViewActions.h"
-#include "SampleView.h"
-#include "SampleViewDocks.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewActions.h"
+#include "GUI/coregui/Views/SampleView.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewDocks.h"
 #include <QAction>
 #include <QDockWidget>
 
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewActions.h b/GUI/coregui/Views/SampleDesigner/SampleViewActions.h
index 140fdd6ff6f2c946fe6859250d614bf2a5afc6dc..a9011de3c5583aa5fa7e6da81ed4970830bcc1de 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewActions.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewActions.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEVIEWACTIONS_H
 #define SAMPLEVIEWACTIONS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class SampleModel;
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
index 573919f2a9c99749732a67327e328b51b81f6474..899183ec38d7445089a95788d2047cb4c4961872 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SampleViewAligner.h"
-#include "DesignerScene.h"
-#include "IView.h"
-#include "SampleModel.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewAligner.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerScene.h"
+#include "GUI/coregui/Views/SampleDesigner/IView.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QModelIndex>
 
 namespace {
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h
index dc8f428631aceba5d435258f43b97dbd0b93b583..56aadb6664d6aaa65c931145d6a52b8b396b257b 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEVIEWALIGNER_H
 #define SAMPLEVIEWALIGNER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QModelIndex>
 #include <QPointF>
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewDocks.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewDocks.cpp
index 74bba70dbf54b149bc015d6d3c58426db7c788b4..b611d9cbd3b68b98ea28f6661c90107dcc81a489 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewDocks.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewDocks.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "SampleViewDocks.h"
-#include "ApplicationModels.h"
-#include "FilterPropertyProxy.h"
-#include "RealSpacePanel.h"
-#include "SampleDesigner.h"
-#include "SamplePropertyWidget.h"
-#include "SampleTreeWidget.h"
-#include "SampleView.h"
-#include "SampleWidgetBox.h"
-#include "ScriptPanel.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewDocks.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/FilterPropertyProxy.h"
+#include "GUI/coregui/Views/SampleDesigner/RealSpacePanel.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleDesigner.h"
+#include "GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h"
+#include "GUI/coregui/Views/SampleView.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h"
+#include "GUI/coregui/Views/SampleDesigner/ScriptPanel.h"
 #include <QAction>
 #include <QDockWidget>
 #include <QTreeView>
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewDocks.h b/GUI/coregui/Views/SampleDesigner/SampleViewDocks.h
index a8ff7b5550ea335a5d2bb6353ee6ff26ae560492..25f42d20159b8d51fe0e5154761ccd2ac5089623 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewDocks.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewDocks.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEVIEWDOCKS_H
 #define SAMPLEVIEWDOCKS_H
 
-#include "DocksController.h"
+#include "GUI/coregui/Views/CommonWidgets/DocksController.h"
 
 class SampleView;
 class SampleWidgetBox;
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewFactory.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewFactory.cpp
index 0a78df9e156bda58dd70d577b03f4ef3fac5bac3..914c1407b9b297b28a3fa3be2f098922ffb6aa0c 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewFactory.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewFactory.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "SampleViewFactory.h"
-#include "InterferenceFunctionViews.h"
-#include "LayerView.h"
-#include "MesoCrystalView.h"
-#include "MultiLayerView.h"
-#include "ParticleCompositionView.h"
-#include "ParticleCoreShellView.h"
-#include "ParticleDistributionView.h"
-#include "ParticleLayoutView.h"
-#include "ParticleView.h"
-#include "TransformationView.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewFactory.h"
+#include "GUI/coregui/Views/SampleDesigner/InterferenceFunctionViews.h"
+#include "GUI/coregui/Views/SampleDesigner/LayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/MesoCrystalView.h"
+#include "GUI/coregui/Views/SampleDesigner/MultiLayerView.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleCompositionView.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleCoreShellView.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleDistributionView.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleLayoutView.h"
+#include "GUI/coregui/Views/SampleDesigner/ParticleView.h"
+#include "GUI/coregui/Views/SampleDesigner/TransformationView.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 QStringList SampleViewFactory::m_valid_item_names =
     QStringList() << Constants::MultiLayerType << Constants::LayerType
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewFactory.h b/GUI/coregui/Views/SampleDesigner/SampleViewFactory.h
index 5ba5a9c0c62da63928b811b00e88ae2ee3762494..e7a42f755f4a8db49a11a3c498030c82c1d6bee6 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewFactory.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewFactory.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEVIEWFACTORY_H
 #define SAMPLEVIEWFACTORY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QStringList>
 
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp
index cd629378ad14fd98b1a83bc677b79577aacbb3cb..681545fc2630fbdc14814d746c9acde90a045c61 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SampleViewStatusBar.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QHBoxLayout>
 #include <QStatusBar>
 #include <QToolButton>
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.h b/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.h
index 9578ff37f2a2c90d31a2e4f788f975c24720cf7f..bf54341801785950a23edb3ac5c516bedc34b487 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEVIEWSTATUSBAR_H
 #define SAMPLEVIEWSTATUSBAR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.cpp b/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.cpp
index b48cde8744280d22e2a7d21f7c649f9aeb009657..dd7c2cd7e5fcb9910eb5aef332a61056ab14d62f 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SampleWidgetBox.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h"
 #include "styledbar.h"
-#include "widgetbox.h"
+#include "GUI/coregui/Views/widgetbox/widgetbox.h"
 #include <QVBoxLayout>
 
 #if QT_VERSION < 0x050000
diff --git a/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h b/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h
index a09c26474147fbf089c99b0a6b2a0ce7e0108111..df108b0c1e05ee6f47b2c2a6bf01a4b0da8b46b9 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h
+++ b/GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEWIDGETBOX_H
 #define SAMPLEWIDGETBOX_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QDesignerWidgetBoxInterface;
diff --git a/GUI/coregui/Views/SampleDesigner/ScriptPanel.cpp b/GUI/coregui/Views/SampleDesigner/ScriptPanel.cpp
index 7d2c6f6299f1a56b2dd10e0e3293d87286d3ecbd..6e237efe9901f4b4d124901acab925cbae199b01 100644
--- a/GUI/coregui/Views/SampleDesigner/ScriptPanel.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ScriptPanel.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "ScriptPanel.h"
-#include "InfoPanelToolBar.h"
-#include "PySampleWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/ScriptPanel.h"
+#include "GUI/coregui/Views/CommonWidgets/InfoPanelToolBar.h"
+#include "GUI/coregui/Views/InfoWidgets/PySampleWidget.h"
 #include <QResizeEvent>
 #include <QStackedWidget>
 
diff --git a/GUI/coregui/Views/SampleDesigner/ScriptPanel.h b/GUI/coregui/Views/SampleDesigner/ScriptPanel.h
index 5bb61c3b263d93a8e9a741ffd7637dfd7a1e3664..b6997b56c066dd6e108e0e991218fe9245a31d23 100644
--- a/GUI/coregui/Views/SampleDesigner/ScriptPanel.h
+++ b/GUI/coregui/Views/SampleDesigner/ScriptPanel.h
@@ -15,7 +15,7 @@
 #ifndef SCRIPTPANEL_H
 #define SCRIPTPANEL_H
 
-#include "InfoPanel.h"
+#include "GUI/coregui/Views/CommonWidgets/InfoPanel.h"
 
 class SampleModel;
 class InstrumentModel;
diff --git a/GUI/coregui/Views/SampleDesigner/TransformationView.cpp b/GUI/coregui/Views/SampleDesigner/TransformationView.cpp
index d388ae258b4d9fb6cb0af66b8aef782fafcf9531..57789dd94f1420568e9ccb146d074a3093a763d2 100644
--- a/GUI/coregui/Views/SampleDesigner/TransformationView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/TransformationView.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "TransformationView.h"
-#include "DesignerHelper.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/SampleDesigner/TransformationView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 TransformationView::TransformationView(QGraphicsItem* parent) : ConnectableView(parent)
 {
diff --git a/GUI/coregui/Views/SampleDesigner/TransformationView.h b/GUI/coregui/Views/SampleDesigner/TransformationView.h
index 09e98df759ebff57e32fdf1e10369a40f60a5d92..b616f4d9df6b95bc43f04f480469c027b6dc4b26 100644
--- a/GUI/coregui/Views/SampleDesigner/TransformationView.h
+++ b/GUI/coregui/Views/SampleDesigner/TransformationView.h
@@ -15,7 +15,7 @@
 #ifndef TRANSFORMATIONVIEW_H
 #define TRANSFORMATIONVIEW_H
 
-#include "ConnectableView.h"
+#include "GUI/coregui/Views/SampleDesigner/ConnectableView.h"
 
 class TransformationView : public ConnectableView
 {
diff --git a/GUI/coregui/Views/SampleView.cpp b/GUI/coregui/Views/SampleView.cpp
index f87cf07b482092268efa47cf2d5cf48bafbeb310..fc7d320c198afc7f5d7842aa2c80aa4209b3671b 100644
--- a/GUI/coregui/Views/SampleView.cpp
+++ b/GUI/coregui/Views/SampleView.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "SampleView.h"
-#include "ApplicationModels.h"
-#include "SampleDesigner.h"
-#include "SampleToolBar.h"
-#include "SampleTreeWidget.h"
-#include "SampleViewActions.h"
-#include "SampleViewDocks.h"
-#include "SampleViewStatusBar.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/SampleView.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleDesigner.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleToolBar.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleTreeWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewActions.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewDocks.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QMenu>
 #include <memory>
 
diff --git a/GUI/coregui/Views/SampleView.h b/GUI/coregui/Views/SampleView.h
index dda0ef646f8a3fb63e8c5842061c5fd20d110cac..cb38b6816380863902622a570ba73cfbea3f6a05 100644
--- a/GUI/coregui/Views/SampleView.h
+++ b/GUI/coregui/Views/SampleView.h
@@ -15,7 +15,7 @@
 #ifndef SAMPLEVIEW_H
 #define SAMPLEVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include "fancymainwindow.h"
 
 class MainWindow;
diff --git a/GUI/coregui/Views/SessionModelView.cpp b/GUI/coregui/Views/SessionModelView.cpp
index 714ffd347e0e8ec9bcfca9121fc5ffcdc8763002..3c74070d04bd2f50d860285c0abea548832089c1 100644
--- a/GUI/coregui/Views/SessionModelView.cpp
+++ b/GUI/coregui/Views/SessionModelView.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "SessionModelView.h"
-#include "InstrumentModel.h"
-#include "JobModel.h"
-#include "MaterialModel.h"
-#include "ModelTreeView.h"
-#include "RealDataModel.h"
-#include "SampleModel.h"
-#include "SessionModelDelegate.h"
-#include "TestView.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/SessionModelView.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Views/CommonWidgets/ModelTreeView.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionModelDelegate.h"
+#include "GUI/coregui/Views/TestView.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QToolBar>
 #include <QToolButton>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/SessionModelView.h b/GUI/coregui/Views/SessionModelView.h
index 7c0839f3802274be3c425259f62286b0b36e2c17..50dc2a22b3f291de6cc9ccead675a776496aece0 100644
--- a/GUI/coregui/Views/SessionModelView.h
+++ b/GUI/coregui/Views/SessionModelView.h
@@ -15,7 +15,7 @@
 #ifndef SESSIONMODELVIEW_H
 #define SESSIONMODELVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/SimulationView.cpp b/GUI/coregui/Views/SimulationView.cpp
index fa7075a531365a7cd1b217d15e385d0d9f9a133f..24a3fa0a24a375dcb1d1931ae091ec0edbde6a82 100644
--- a/GUI/coregui/Views/SimulationView.cpp
+++ b/GUI/coregui/Views/SimulationView.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "SimulationView.h"
-#include "SimulationSetupWidget.h"
-#include "StyledToolBar.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/SimulationView.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QVBoxLayout>
 
 SimulationView::SimulationView(MainWindow* mainWindow)
diff --git a/GUI/coregui/Views/SimulationView.h b/GUI/coregui/Views/SimulationView.h
index 58d23b9d6e1ad90dc44c95e11571ba5ed585004d..bdec822f432deb873d6360d2dae819a63d324a1a 100644
--- a/GUI/coregui/Views/SimulationView.h
+++ b/GUI/coregui/Views/SimulationView.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONVIEW_H
 #define SIMULATIONVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp
index 4978302eaffed3999d1e4f7c1d2b6c23ef757748..2a3d250013448f4d16e7d651f2d7f3fefab279bb 100644
--- a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "PythonScriptWidget.h"
-#include "DesignerHelper.h"
-#include "DomainSimulationBuilder.h"
-#include "ExportToPython.h"
-#include "GISASSimulation.h"
-#include "InstrumentItems.h"
-#include "PythonSyntaxHighlighter.h"
-#include "StyleUtils.h"
-#include "WarningSign.h"
+#include "GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Models/DomainSimulationBuilder.h"
+#include "Core/Export/ExportToPython.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Views/InfoWidgets/PythonSyntaxHighlighter.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/Views/InfoWidgets/WarningSign.h"
 #include <QFileDialog>
 #include <QMessageBox>
 #include <QPushButton>
diff --git a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h
index a9f5c591dc17c37db2c2fee2264f1da5fe291a9c..49f9e7fe0c4dcdf81a313f49806bd672b6e455e6 100644
--- a/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h
@@ -15,7 +15,7 @@
 #ifndef PYTHONSCRIPTWIDGET_H
 #define PYTHONSCRIPTWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 
 class QToolBar;
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
index 40329be6ed2b2393f64986459d04f6e4497bcc09..524e2bec05b6cc99b20e0fe06efb17c9dfd79d25 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "SimulationDataSelectorWidget.h"
-#include "ApplicationModels.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "ModelUtils.h"
-#include "MultiLayerItem.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "SampleModel.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Models/SampleModel.h"
 #include <QComboBox>
 #include <QFileDialog>
 #include <QGroupBox>
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h
index 370ffd5f161c47a8e679215ceb44e5a4b9d4e8aa..5275c1128e739ba0d6faa4bf239dec7382970fab 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONDATASELECTORWIDGET_H
 #define SIMULATIONDATASELECTORWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class ApplicationModels;
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.cpp
index afe60e4c43d0be4351fcba2e20c5e6b5062c2bc2..94883561db031966d15fc485979ed989adffc0cc 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SimulationOptionsWidget.h"
-#include "ComponentFlatView.h"
-#include "SimulationOptionsItem.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentFlatView.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
 #include <QGroupBox>
 #include <QVBoxLayout>
 
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.h b/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.h
index 693590c4977de60e28a2ce3548e33b1637c7febc..664a1faf5d8e6ccce6ce856b864c60646c65a03c 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONOPTIONSWIDGET_H
 #define SIMULATIONOPTIONSWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SimulationOptionsItem;
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp
index ada65117c504da7f73a55ab591153f3f7d18f234..532c203672af249403aaf14c493cb0b0c380a9f1 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SimulationSetupAssistant.h"
-#include "ImportDataUtils.h"
-#include "InstrumentItems.h"
-#include "RealDataItem.h"
-#include "SampleValidator.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SampleValidator.h"
 #include <QMessageBox>
 
 //! Returns true if given setup is valid for submitting the job
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h
index 2baa6c77530b4955cb31cf6504c657e28c05b5e5..8800594749f4dec4144ff4f86d16867492dce564 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONSETUPASSISTANT_H
 #define SIMULATIONSETUPASSISTANT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStringList>
 
 class MultiLayerItem;
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
index 48d86c57c553a172fc299d337d5a7b89e30281c5..38a42cbc1654f39ad4114ed8b3b3be27c13a4906 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "SimulationSetupWidget.h"
-#include "AppSvc.h"
-#include "ApplicationModels.h"
-#include "DocumentModel.h"
-#include "InstrumentItems.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "PythonScriptWidget.h"
-#include "SimulationDataSelectorWidget.h"
-#include "SimulationOptionsWidget.h"
-#include "SimulationSetupAssistant.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/SimulationWidgets/PythonScriptWidget.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationOptionsWidget.h"
+#include "GUI/coregui/Views/SimulationWidgets/SimulationSetupAssistant.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QMessageBox>
 #include <QPushButton>
 #include <QVBoxLayout>
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h
index 35ca30a9b8594b7672f77769f655d50b536653b3..3a92d2ec635926055a5e9735e9937df0bdebf6e5 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.h
@@ -15,7 +15,7 @@
 #ifndef SIMULATIONSETUPWIDGET_H
 #define SIMULATIONSETUPWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QPushButton;
diff --git a/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.cpp b/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.cpp
index 2284c71c0a76ea16487e72302c8ae9df005f47f9..50df7d0655d8c376cb4bebd558b02ab4a132541a 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Plot1DCanvas.h"
-#include "FontScalingEvent.h"
-#include "Plot1D.h"
-#include "PlotStatusLabel.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/Plot1D.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
 #include <QVBoxLayout>
 
 Plot1DCanvas::Plot1DCanvas(QWidget* parent)
diff --git a/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h b/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h
index e07f787e29c65b9b1734f82a3f9766cf596d2d97..42cd6626aeb25d548f05be80c8d12b4b68efc909 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h
+++ b/GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h
@@ -15,7 +15,7 @@
 #ifndef PLOT1DCANVAS_H
 #define PLOT1DCANVAS_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class FontScalingEvent;
 class PlotStatusLabel;
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp
index a750ca30cc0b10fb2d5bd26d6d854d0b801b90ef..459926de63c49f08678522fe6c05d2c4b5841951 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SpecularDataCanvas.h"
-#include "AppSvc.h"
-#include "SavePlotAssistant.h"
-#include "SpecularDataItem.h"
-#include "SpecularPlotCanvas.h"
-#include "plot_constants.h"
-#include "projectmanager.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.h"
+#include "GUI/coregui/Views/FitWidgets/plot_constants.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include "qcustomplot.h"
 
 SpecularDataCanvas::SpecularDataCanvas(QWidget* parent)
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.h b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.h
index 31d963cb617b5d23fa3f40c68e22b05a8e2a28af..252bf4500af850adff8922d1c076b36196d1e374 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.h
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.h
@@ -15,8 +15,8 @@
 #ifndef SPECULARDATACANVAS_H
 #define SPECULARDATACANVAS_H
 
-#include "SessionItemWidget.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class SpecularDataItem;
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp
index cd93ba322fbe29cf133ede2ff9f832ca490b96f8..9111c66df4701880317f6abc95c886431d6bcfb7 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SpecularDataWidget.h"
-#include "DataItemUtils.h"
-#include "GUIHelpers.h"
-#include "IntensityDataPropertyWidget.h"
-#include "JobItem.h"
-#include "SpecularDataCanvas.h"
-#include "SpecularDataItem.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h"
+#include "GUI/coregui/Models/DataItemUtils.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataPropertyWidget.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
 #include <QBoxLayout>
 #include <QMenu>
 
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h
index 7ee6a42ca64392f325ac10cc1b8d2a7cf3ee0aa0..d86befd70fdd882e181320717ad5067bd8e8af88 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARDATAWIDGET_H
 #define SPECULARDATAWIDGET_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class SpecularDataCanvas;
 class SpecularDataItem;
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp
index cc110eda1ce941f49db61b5ac69631b9f594c8c4..60269176da7dfdd19e94ddecb701e668b8993bfb 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "SpecularPlot.h"
-#include "AxesItems.h"
-#include "ColorMapUtils.h"
-#include "MathConstants.h"
-#include "PlotEventInfo.h"
-#include "SpecularDataItem.h"
-#include "UpdateTimer.h"
-#include "plot_constants.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.h"
+#include "Core/Basics/MathConstants.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotEventInfo.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "GUI/coregui/Views/FitWidgets/plot_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.h b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.h
index 0425e0ff101e0c118fde72a48a1bc79b14b5b5b8..c817b6ba0ff88ce1f2ca1ecf3e4b5178a838a33d 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.h
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARPLOT_H
 #define SPECULARPLOT_H
 
-#include "ScientificPlot.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/ScientificPlot.h"
 #include "qcustomplot.h"
 #include <memory>
 
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.cpp
index 021e6761663b9fbf0e1e0d457682a7b0bce97d80..b7b7b1226734520d2ed1717a9ae65e5a8e1aea64 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "SpecularPlotCanvas.h"
-#include "FontScalingEvent.h"
-#include "PlotStatusLabel.h"
-#include "SpecularDataItem.h"
-#include "SpecularPlot.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PlotStatusLabel.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.h"
 #include <QVBoxLayout>
 
 SpecularPlotCanvas::SpecularPlotCanvas(QWidget* parent)
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.h b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.h
index b3392be726bcd9ae789c9189996dc79356c9c4f8..67672c430570ff27e793465f0affbcfc0cb91651 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.h
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlotCanvas.h
@@ -15,7 +15,7 @@
 #ifndef SPECULARPLOTCANVAS_H
 #define SPECULARPLOTCANVAS_H
 
-#include "SessionItemWidget.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemWidget.h"
 
 class FontScalingEvent;
 class PlotStatusLabel;
diff --git a/GUI/coregui/Views/TestView.cpp b/GUI/coregui/Views/TestView.cpp
index f21a5c915ae609d3c61a76a653f548d44cdd39af..e105bdfb11d7f5456e815bfdfef9c22d8957e3d6 100644
--- a/GUI/coregui/Views/TestView.cpp
+++ b/GUI/coregui/Views/TestView.cpp
@@ -12,27 +12,27 @@
 //
 // ************************************************************************** //
 
-#include "TestView.h"
-#include "AccordionWidget.h"
-#include "ApplicationModels.h"
-#include "Data1DViewItem.h"
-#include "DataPropertyContainer.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "MaskEditor.h"
-#include "MaterialEditor.h"
-#include "MinimizerItem.h"
-#include "MinimizerSettingsWidget.h"
-#include "Plot1DCanvas.h"
-#include "RealDataItem.h"
-#include "SampleModel.h"
-#include "SpecularDataItem.h"
-#include "TestComponentView.h"
-#include "mainwindow.h"
+#include "GUI/coregui/Views/TestView.h"
+#include "GUI/coregui/Views/AccordionWidget/AccordionWidget.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/Data1DViewItem.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/MaskWidgets/MaskEditor.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditor.h"
+#include "GUI/coregui/Models/MinimizerItem.h"
+#include "GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.h"
+#include "GUI/coregui/Views/SpecularDataWidgets/Plot1DCanvas.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "GUI/coregui/Views/PropertyEditor/TestComponentView.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include <QTreeView>
 
 #ifdef BORNAGAIN_OPENGL
-#include "RealSpaceWidget.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceWidget.h"
 #endif
 
 #include <QCheckBox>
diff --git a/GUI/coregui/Views/TestView.h b/GUI/coregui/Views/TestView.h
index 50321b6b0c45d30d288f87a4603511f5a0050871..13b0038fff6ca07e52bd7ed1a0c2e078123d3896 100644
--- a/GUI/coregui/Views/TestView.h
+++ b/GUI/coregui/Views/TestView.h
@@ -15,7 +15,7 @@
 #ifndef TESTVIEW_H
 #define TESTVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class MainWindow;
diff --git a/GUI/coregui/Views/WelcomeView.cpp b/GUI/coregui/Views/WelcomeView.cpp
index ea3ba612ae2a6b0eedf15d096a7f6fe72f21f88d..597576d328f3149876aba55b90e3bdb1a2782161 100644
--- a/GUI/coregui/Views/WelcomeView.cpp
+++ b/GUI/coregui/Views/WelcomeView.cpp
@@ -12,17 +12,17 @@
 //
 // ************************************************************************** //
 
-#include "WelcomeView.h"
-#include "DesignerHelper.h"
-#include "FancyLabel.h"
-#include "LayoutUtils.h"
-#include "StyleUtils.h"
-#include "UpdateNotifierWidget.h"
-#include "mainwindow.h"
-#include "mainwindow_constants.h"
-#include "projectdocument.h"
-#include "projectmanager.h"
-#include "qstringutils.h"
+#include "GUI/coregui/Views/WelcomeView.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/FancyLabel.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/mainwindow/UpdateNotifierWidget.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
+#include "GUI/coregui/utils/qstringutils.h"
 #include <QCommandLinkButton>
 #include <QDesktopServices>
 #include <QUrl>
diff --git a/GUI/coregui/Views/WelcomeView.h b/GUI/coregui/Views/WelcomeView.h
index 86eb751e442f23529e4b1f3bbe5d441781693a00..01dc449c5d9548d0ffbf00f4070dc1e6c5ba2352 100644
--- a/GUI/coregui/Views/WelcomeView.h
+++ b/GUI/coregui/Views/WelcomeView.h
@@ -15,7 +15,7 @@
 #ifndef WELCOMEVIEW_H
 #define WELCOMEVIEW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class QPushButton;
diff --git a/GUI/coregui/Views/widgetbox/deviceprofile_p.h b/GUI/coregui/Views/widgetbox/deviceprofile_p.h
index d8b203d30cb6115d1684bb128765eded8b7fc2d3..9d8aca81254670d53ea4dfbd7292cfe639981f9c 100644
--- a/GUI/coregui/Views/widgetbox/deviceprofile_p.h
+++ b/GUI/coregui/Views/widgetbox/deviceprofile_p.h
@@ -53,7 +53,7 @@
 #ifndef DEVICEPROFILE_P_H
 #define DEVICEPROFILE_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 #include <QtCore/QSharedDataPointer>
 #include <QtCore/QString>
diff --git a/GUI/coregui/Views/widgetbox/formwindowbase_p.h b/GUI/coregui/Views/widgetbox/formwindowbase_p.h
index dd76805d6547be7caf42b6484863b649e7d5890c..23cdf582c70e442c64165fd9a7b723a391d209f9 100644
--- a/GUI/coregui/Views/widgetbox/formwindowbase_p.h
+++ b/GUI/coregui/Views/widgetbox/formwindowbase_p.h
@@ -53,7 +53,7 @@
 #ifndef FORMWINDOWBASE_P_H
 #define FORMWINDOWBASE_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 #include <QtDesigner/QDesignerFormWindowInterface>
 
diff --git a/GUI/coregui/Views/widgetbox/qdesigner_dnditem_p.h b/GUI/coregui/Views/widgetbox/qdesigner_dnditem_p.h
index dc5a18c0f3ad45ed72bfb22d86a2128bca6a1eef..073944fa25e999910c49dbccb1f034460d406a93 100644
--- a/GUI/coregui/Views/widgetbox/qdesigner_dnditem_p.h
+++ b/GUI/coregui/Views/widgetbox/qdesigner_dnditem_p.h
@@ -53,7 +53,7 @@
 #ifndef QDESIGNER_DNDITEM_P_H
 #define QDESIGNER_DNDITEM_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 #include <QtDesigner/abstractdnditem.h>
 
 #include <QtCore/QList>
diff --git a/GUI/coregui/Views/widgetbox/qdesigner_formbuilder_p.h b/GUI/coregui/Views/widgetbox/qdesigner_formbuilder_p.h
index 3683c5a9c31f9de388c3640da06f50a39d3b248e..6b86c857bf39525ce292afdcb0f15bcb5150f366 100644
--- a/GUI/coregui/Views/widgetbox/qdesigner_formbuilder_p.h
+++ b/GUI/coregui/Views/widgetbox/qdesigner_formbuilder_p.h
@@ -53,8 +53,8 @@
 #ifndef QDESIGNER_FORMBUILDER_P_H
 #define QDESIGNER_FORMBUILDER_P_H
 
-#include "deviceprofile_p.h"
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/deviceprofile_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 #include <QtDesigner/formbuilder.h>
 
diff --git a/GUI/coregui/Views/widgetbox/qdesigner_utils_p.h b/GUI/coregui/Views/widgetbox/qdesigner_utils_p.h
index a1da87e21da168939af0c2c0cecbb65dca64937d..cb1bdcd96d37c939bc56252a62060702a724f606 100644
--- a/GUI/coregui/Views/widgetbox/qdesigner_utils_p.h
+++ b/GUI/coregui/Views/widgetbox/qdesigner_utils_p.h
@@ -53,7 +53,7 @@
 #ifndef QDESIGNER_UTILS_P_H
 #define QDESIGNER_UTILS_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 #include <QtDesigner/QDesignerFormWindowInterface>
 
diff --git a/GUI/coregui/Views/widgetbox/qdesigner_widgetbox_p.h b/GUI/coregui/Views/widgetbox/qdesigner_widgetbox_p.h
index d496f08942c9b86c1960c19ac994e94ea84957a2..4828a11bd2166023da9bc87382ddcb2faf8915c4 100644
--- a/GUI/coregui/Views/widgetbox/qdesigner_widgetbox_p.h
+++ b/GUI/coregui/Views/widgetbox/qdesigner_widgetbox_p.h
@@ -53,7 +53,7 @@
 #ifndef QDESIGNER_WIDGETBOX_P_H
 #define QDESIGNER_WIDGETBOX_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 #include <QtDesigner/QDesignerWidgetBoxInterface>
 
 QT_BEGIN_NAMESPACE
diff --git a/GUI/coregui/Views/widgetbox/qsimpleresource_p.h b/GUI/coregui/Views/widgetbox/qsimpleresource_p.h
index 1b4f569e11c9b121a15cf20df8ae6c3ac8e2a919..70c2d5a9129c00477a315155e1c01a42cb3912a7 100644
--- a/GUI/coregui/Views/widgetbox/qsimpleresource_p.h
+++ b/GUI/coregui/Views/widgetbox/qsimpleresource_p.h
@@ -53,7 +53,7 @@
 #ifndef QSIMPLERESOURCE_P_H
 #define QSIMPLERESOURCE_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 //#include "abstractformbuilder.h"
 #include <QtCore/QStringList>
 #include <QtDesigner/abstractformbuilder.h>
diff --git a/GUI/coregui/Views/widgetbox/shared_enums_p.h b/GUI/coregui/Views/widgetbox/shared_enums_p.h
index db231e61a983629319aa71678bcf6e7722154a3a..18078d907c2ca71d5553683e65aa26846ac37b5c 100644
--- a/GUI/coregui/Views/widgetbox/shared_enums_p.h
+++ b/GUI/coregui/Views/widgetbox/shared_enums_p.h
@@ -53,7 +53,7 @@
 #ifndef SHARED_ENUMS_P_H
 #define SHARED_ENUMS_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 QT_BEGIN_NAMESPACE
 
diff --git a/GUI/coregui/Views/widgetbox/sheet_delegate_p.h b/GUI/coregui/Views/widgetbox/sheet_delegate_p.h
index 44aec921ec73e4992443a65832f0f37a7db0a4b0..3b53631ec041b0dd904c93ca035426f48225c923 100644
--- a/GUI/coregui/Views/widgetbox/sheet_delegate_p.h
+++ b/GUI/coregui/Views/widgetbox/sheet_delegate_p.h
@@ -53,7 +53,7 @@
 #ifndef SHEET_DELEGATE_P_H
 #define SHEET_DELEGATE_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 //#include <QtWidgets/QItemDelegate>
 //#include <QtWidgets/QTreeView>
diff --git a/GUI/coregui/Views/widgetbox/spacer_widget_p.h b/GUI/coregui/Views/widgetbox/spacer_widget_p.h
index 71ba009b5227692b9d9f935eb5ec27594ec097e1..04912245fb224c8f2bf39feeabd3522ccb8bd685 100644
--- a/GUI/coregui/Views/widgetbox/spacer_widget_p.h
+++ b/GUI/coregui/Views/widgetbox/spacer_widget_p.h
@@ -53,7 +53,7 @@
 #ifndef SPACER_WIDGET_P_H
 #define SPACER_WIDGET_P_H
 
-#include "shared_global_p.h"
+#include "GUI/coregui/Views/widgetbox/shared_global_p.h"
 
 //#include <QtWidgets/QWidget>
 //#include <QtWidgets/QSizePolicy>
diff --git a/GUI/coregui/Views/widgetbox/widgetbox.cpp b/GUI/coregui/Views/widgetbox/widgetbox.cpp
index 81a71570e25b1db7bb5cacae5203d015b83542f4..68aa0e58ce9e4c850ca170c47b5fe8bb9187e2ec 100644
--- a/GUI/coregui/Views/widgetbox/widgetbox.cpp
+++ b/GUI/coregui/Views/widgetbox/widgetbox.cpp
@@ -39,14 +39,14 @@
 **
 ****************************************************************************/
 
-#include "widgetbox.h"
-#include "qdesigner_dnditem_p.h"
-#include "widgetboxtreewidget.h"
+#include "GUI/coregui/Views/widgetbox/widgetbox.h"
+#include "GUI/coregui/Views/widgetbox/qdesigner_dnditem_p.h"
+#include "GUI/coregui/Views/widgetbox/widgetboxtreewidget.h"
 
 #include <QtDesigner/QDesignerFormEditorInterface>
 #include <QtDesigner/QDesignerFormWindowManagerInterface>
 
-#include <qdesigner_utils_p.h>
+#include "GUI/coregui/Views/widgetbox/qdesigner_utils_p.h"
 //#include <filterwidget_p.h>
 
 #include <QtGui/QDropEvent>
@@ -61,9 +61,9 @@
 
 #include <QtGui/QIcon>
 
-#include "SampleDesigner.h"
+#include "GUI/coregui/Views/SampleDesigner/SampleDesigner.h"
 
-#include "DesignerMimeData.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerMimeData.h"
 
 #include <iostream>
 QT_BEGIN_NAMESPACE
diff --git a/GUI/coregui/Views/widgetbox/widgetbox.h b/GUI/coregui/Views/widgetbox/widgetbox.h
index 9e55df08a579f3091fe64bfe81a75bc52562e734..034187f7a9cef1159603df0515687c386514cb9c 100644
--- a/GUI/coregui/Views/widgetbox/widgetbox.h
+++ b/GUI/coregui/Views/widgetbox/widgetbox.h
@@ -42,8 +42,8 @@
 #ifndef WIDGETBOX_H
 #define WIDGETBOX_H
 
-#include "widgetbox_global.h"
-#include <qdesigner_widgetbox_p.h>
+#include "GUI/coregui/Views/widgetbox/widgetbox_global.h"
+#include "GUI/coregui/Views/widgetbox/qdesigner_widgetbox_p.h"
 
 QT_BEGIN_NAMESPACE
 
diff --git a/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp b/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp
index 657a216a6e549224d23e7ba5ceecbca22da1ce9b..9ab93c951dfc53d180f4521530f116461e464722 100644
--- a/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp
+++ b/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp
@@ -39,8 +39,8 @@
 **
 ****************************************************************************/
 
-#include "widgetboxcategorylistview.h"
-#include "tooltipdatabase.h"
+#include "GUI/coregui/Views/widgetbox/widgetboxcategorylistview.h"
+#include "GUI/coregui/mainwindow/tooltipdatabase.h"
 
 #include <QtDesigner/QDesignerFormEditorInterface>
 #include <QtDesigner/QDesignerWidgetDataBaseInterface>
diff --git a/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp b/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp
index 966fd795f5d9a05ffd2255d8ea3f23ac672210c5..9285f639825a11155a36823f5cd15ec5d81b86db 100644
--- a/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp
+++ b/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp
@@ -39,13 +39,13 @@
 **
 ****************************************************************************/
 
-#include "widgetboxtreewidget.h"
-#include "widgetboxcategorylistview.h"
+#include "GUI/coregui/Views/widgetbox/widgetboxtreewidget.h"
+#include "GUI/coregui/Views/widgetbox/widgetboxcategorylistview.h"
 
 // shared
-#include <qdesigner_utils_p.h>
-#include <sheet_delegate_p.h>
-#include <ui4_p.h>
+#include "GUI/coregui/Views/widgetbox/qdesigner_utils_p.h"
+#include "GUI/coregui/Views/widgetbox/sheet_delegate_p.h"
+#include "GUI/coregui/Views/widgetbox/ui4_p.h"
 
 // sdk
 #include <QtDesigner/QDesignerDnDItemInterface>
diff --git a/GUI/coregui/Views/widgetbox/widgetboxtreewidget.h b/GUI/coregui/Views/widgetbox/widgetboxtreewidget.h
index fe654d2a0d015ca92112fcdafb048e233fcb502b..12886b1b0cfd841df8292cf3437f64799a3f71b9 100644
--- a/GUI/coregui/Views/widgetbox/widgetboxtreewidget.h
+++ b/GUI/coregui/Views/widgetbox/widgetboxtreewidget.h
@@ -42,7 +42,7 @@
 #ifndef WIDGETBOXTREEWIDGET_H
 #define WIDGETBOXTREEWIDGET_H
 
-#include "qdesigner_widgetbox_p.h"
+#include "GUI/coregui/Views/widgetbox/qdesigner_widgetbox_p.h"
 
 #include <QHash>
 #include <QIcon>
diff --git a/GUI/coregui/mainwindow/AppSvc.cpp b/GUI/coregui/mainwindow/AppSvc.cpp
index 12f974eb88a35a7d02d9d35a35de337164d34eb2..70ad548f58c505c8b13c7eb52d05845b4fed6768 100644
--- a/GUI/coregui/mainwindow/AppSvc.cpp
+++ b/GUI/coregui/mainwindow/AppSvc.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "AppSvc.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 
 ProjectManager* AppSvc::projectManager()
 {
diff --git a/GUI/coregui/mainwindow/AppSvc.h b/GUI/coregui/mainwindow/AppSvc.h
index bfeff2df83ee70b2a9eb3f83a2002aaf25fe78ef..c83bb61bd36135b59b7e42aa7daa8c1e16903f21 100644
--- a/GUI/coregui/mainwindow/AppSvc.h
+++ b/GUI/coregui/mainwindow/AppSvc.h
@@ -15,8 +15,8 @@
 #ifndef APPSVC_H
 #define APPSVC_H
 
-#include "ISingleton.h"
-#include "WinDllMacros.h"
+#include "Core/Basics/ISingleton.h"
+#include "Wrap/WinDllMacros.h"
 
 class ProjectManager;
 class MaterialModel;
diff --git a/GUI/coregui/mainwindow/AutosaveController.cpp b/GUI/coregui/mainwindow/AutosaveController.cpp
index 627ebcdade5239cc3b52cbcbd18f466d2ef4f33f..5e94d669d273cf4b02604e1b1a8163f7d27f8e65 100644
--- a/GUI/coregui/mainwindow/AutosaveController.cpp
+++ b/GUI/coregui/mainwindow/AutosaveController.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "AutosaveController.h"
-#include "GUIHelpers.h"
-#include "ProjectUtils.h"
-#include "UpdateTimer.h"
-#include "projectdocument.h"
+#include "GUI/coregui/mainwindow/AutosaveController.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
 #include <QDir>
 
 namespace
diff --git a/GUI/coregui/mainwindow/AutosaveController.h b/GUI/coregui/mainwindow/AutosaveController.h
index 78601875ac6fd09f533b7fc40bd595a0fa931fe0..2627bdc5ba6546d00d35a876d2a2e4673070836a 100644
--- a/GUI/coregui/mainwindow/AutosaveController.h
+++ b/GUI/coregui/mainwindow/AutosaveController.h
@@ -15,7 +15,7 @@
 #ifndef AUTOSAVECONTROLLER_H
 #define AUTOSAVECONTROLLER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class ProjectDocument;
diff --git a/GUI/coregui/mainwindow/OutputDataIOHistory.cpp b/GUI/coregui/mainwindow/OutputDataIOHistory.cpp
index 3ec8fa16337cec97880a10a5764e4f4aef2c7e0f..a2a03bf356521d0ff1096a3f99e57c6b7297753b 100644
--- a/GUI/coregui/mainwindow/OutputDataIOHistory.cpp
+++ b/GUI/coregui/mainwindow/OutputDataIOHistory.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataIOHistory.h"
-#include "GUIHelpers.h"
-#include "SaveLoadInterface.h"
+#include "GUI/coregui/mainwindow/OutputDataIOHistory.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/mainwindow/SaveLoadInterface.h"
 
 //! Static method to create info for just saved item.
 
diff --git a/GUI/coregui/mainwindow/OutputDataIOHistory.h b/GUI/coregui/mainwindow/OutputDataIOHistory.h
index 7e8e874d4575adc8e5a42bd1dc1be34fc992e878..79d8b154caa4ffe90bcc1b0f9a4b5143217e7592 100644
--- a/GUI/coregui/mainwindow/OutputDataIOHistory.h
+++ b/GUI/coregui/mainwindow/OutputDataIOHistory.h
@@ -15,7 +15,7 @@
 #ifndef OUTPUTDATAIOHISTORY_H
 #define OUTPUTDATAIOHISTORY_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDateTime>
 #include <QMap>
 #include <QVector>
diff --git a/GUI/coregui/mainwindow/OutputDataIOService.cpp b/GUI/coregui/mainwindow/OutputDataIOService.cpp
index 36e058c4c1ce6ff151e3b39fad10e25f5141544b..986da37f4a32b0d4166f7c00f349770724299bf4 100644
--- a/GUI/coregui/mainwindow/OutputDataIOService.cpp
+++ b/GUI/coregui/mainwindow/OutputDataIOService.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "OutputDataIOService.h"
-#include "ApplicationModels.h"
-#include "IntensityDataIOFactory.h"
-#include "JobItem.h"
-#include "MessageService.h"
-#include "ModelPath.h"
-#include "ProjectUtils.h"
-#include "SaveLoadInterface.h"
-#include "item_constants.h"
+#include "GUI/coregui/mainwindow/OutputDataIOService.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/mainwindow/SaveLoadInterface.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 namespace
 {
diff --git a/GUI/coregui/mainwindow/OutputDataIOService.h b/GUI/coregui/mainwindow/OutputDataIOService.h
index 622a204362f01f7925cce0e68702fdfd0fd1db92..403fc52bfb31a06c72442c2220e59d493f771305 100644
--- a/GUI/coregui/mainwindow/OutputDataIOService.h
+++ b/GUI/coregui/mainwindow/OutputDataIOService.h
@@ -15,8 +15,8 @@
 #ifndef OUTPUTDATAIOSERVICE_H
 #define OUTPUTDATAIOSERVICE_H
 
-#include "OutputDataIOHistory.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/mainwindow/OutputDataIOHistory.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class ApplicationModels;
diff --git a/GUI/coregui/mainwindow/ProjectFlags.h b/GUI/coregui/mainwindow/ProjectFlags.h
index bd787a108a69cdff586391c88bf8776b7157cd28..f455191f2fc844bac7972b528de06108eb4f573f 100644
--- a/GUI/coregui/mainwindow/ProjectFlags.h
+++ b/GUI/coregui/mainwindow/ProjectFlags.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTFLAGS_H
 #define PROJECTFLAGS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFlags>
 
 class BA_CORE_API_ ProjectFlags
diff --git a/GUI/coregui/mainwindow/ProjectUtils.cpp b/GUI/coregui/mainwindow/ProjectUtils.cpp
index be28eca0e5e140bc3eebcce3693d079c71ac10bb..436baf0ac9fa1beecc3af1fcfd85ba1aa39fbf1a 100644
--- a/GUI/coregui/mainwindow/ProjectUtils.cpp
+++ b/GUI/coregui/mainwindow/ProjectUtils.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ProjectUtils.h"
-#include "AppSvc.h"
-#include "GUIHelpers.h"
-#include "ItemFileNameUtils.h"
-#include "projectdocument.h"
-#include "projectmanager.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QDateTime>
 #include <QDebug>
 #include <QDir>
diff --git a/GUI/coregui/mainwindow/ProjectUtils.h b/GUI/coregui/mainwindow/ProjectUtils.h
index 7ef1fdc5ee4173bd4f7a99906b92bc223f3569db..0b2f5a02bcb2bb04877b3d026f814e2e080f368b 100644
--- a/GUI/coregui/mainwindow/ProjectUtils.h
+++ b/GUI/coregui/mainwindow/ProjectUtils.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTUTILS_H
 #define PROJECTUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 //! Defines convenience function for project manager and document.
diff --git a/GUI/coregui/mainwindow/PyImportAssistant.cpp b/GUI/coregui/mainwindow/PyImportAssistant.cpp
index 6b33ed9a1cdfa16d9afd5f6766438aa3d3ef6705..590980d8e4c2a0559ab3943edba9b186d8e9e4ed 100644
--- a/GUI/coregui/mainwindow/PyImportAssistant.cpp
+++ b/GUI/coregui/mainwindow/PyImportAssistant.cpp
@@ -12,20 +12,20 @@
 //
 // ************************************************************************** //
 
-#include "PyImportAssistant.h"
-#include "AppSvc.h"
+#include "GUI/coregui/mainwindow/PyImportAssistant.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
 #include "BABuild.h"
-#include "BornAgainNamespace.h"
-#include "ComboSelectorDialog.h"
-#include "DetailedMessageBox.h"
-#include "GUIHelpers.h"
-#include "GUIObjectBuilder.h"
-#include "MultiLayer.h"
-#include "ProjectUtils.h"
-#include "PyImport.h"
-#include "SysUtils.h"
-#include "mainwindow.h"
-#include "projectmanager.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.h"
+#include "GUI/coregui/Views/InfoWidgets/DetailedMessageBox.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "Core/Tools/PyImport.h"
+#include "Core/Tools/SysUtils.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include <QApplication>
 #include <QDebug>
 #include <QFileDialog>
diff --git a/GUI/coregui/mainwindow/PyImportAssistant.h b/GUI/coregui/mainwindow/PyImportAssistant.h
index 7ab86229341e416a6623c60df1781c8a915c4601..df45cf1e48ca2a069236aa47a831874256909256 100644
--- a/GUI/coregui/mainwindow/PyImportAssistant.h
+++ b/GUI/coregui/mainwindow/PyImportAssistant.h
@@ -15,7 +15,7 @@
 #ifndef PYIMPORTASSISTANT_H
 #define PYIMPORTASSISTANT_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <memory>
 
diff --git a/GUI/coregui/mainwindow/SaveLoadInterface.cpp b/GUI/coregui/mainwindow/SaveLoadInterface.cpp
index 716a34e4f836200bab65baf7355028e24d4ebe26..3ad3c2324befbb483a2726088021a588dd258828 100644
--- a/GUI/coregui/mainwindow/SaveLoadInterface.cpp
+++ b/GUI/coregui/mainwindow/SaveLoadInterface.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SaveLoadInterface.h"
+#include "GUI/coregui/mainwindow/SaveLoadInterface.h"
 
 SaveLoadInterface::~SaveLoadInterface() = default;
 
diff --git a/GUI/coregui/mainwindow/SaveLoadInterface.h b/GUI/coregui/mainwindow/SaveLoadInterface.h
index 7bb85b086d658cc848f90d8d8be40ea2560180e3..ba70596b455b1ff86f1e4d5414f1e0b50cf9cb2a 100644
--- a/GUI/coregui/mainwindow/SaveLoadInterface.h
+++ b/GUI/coregui/mainwindow/SaveLoadInterface.h
@@ -15,7 +15,7 @@
 #ifndef SAVELOADINTERFACE_H
 #define SAVELOADINTERFACE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 #include <QDateTime>
 #include <QString>
diff --git a/GUI/coregui/mainwindow/SaveService.cpp b/GUI/coregui/mainwindow/SaveService.cpp
index c16403fb201a90815724e53ae4990a6548eb808a..d31fc4f131dde6d40493ce7dad5047d88c4b7f52 100644
--- a/GUI/coregui/mainwindow/SaveService.cpp
+++ b/GUI/coregui/mainwindow/SaveService.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "SaveService.h"
-#include "AutosaveController.h"
-#include "GUIHelpers.h"
-#include "ProjectUtils.h"
-#include "SaveThread.h"
-#include "UpdateTimer.h"
-#include "projectdocument.h"
+#include "GUI/coregui/mainwindow/SaveService.h"
+#include "GUI/coregui/mainwindow/AutosaveController.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/mainwindow/SaveThread.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
 #include <QApplication>
 #include <QCoreApplication>
 #include <QTime>
diff --git a/GUI/coregui/mainwindow/SaveService.h b/GUI/coregui/mainwindow/SaveService.h
index 9c98506735689b3f63ef0d2f28a7d19e86be74b6..f41fe7c7f5df8b2eadfbf84e156452f4f9cee9da 100644
--- a/GUI/coregui/mainwindow/SaveService.h
+++ b/GUI/coregui/mainwindow/SaveService.h
@@ -15,7 +15,7 @@
 #ifndef SAVESERVICE_H
 #define SAVESERVICE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <QQueue>
 
diff --git a/GUI/coregui/mainwindow/SaveThread.cpp b/GUI/coregui/mainwindow/SaveThread.cpp
index 91d29a74e997f4229e068c080e495ed70e244886..1070f66203f0ea3384bdb43708b79fbb69e2922c 100644
--- a/GUI/coregui/mainwindow/SaveThread.cpp
+++ b/GUI/coregui/mainwindow/SaveThread.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "SaveThread.h"
-#include "projectdocument.h"
+#include "GUI/coregui/mainwindow/SaveThread.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
 
 SaveThread::SaveThread(QObject* parent) : QThread(parent), m_document(nullptr) {}
 
diff --git a/GUI/coregui/mainwindow/SaveThread.h b/GUI/coregui/mainwindow/SaveThread.h
index dbd81559c3858369a9635de4b9fef8cee901c19f..bca853594580ca6e617c4d9a03531e323d875a8c 100644
--- a/GUI/coregui/mainwindow/SaveThread.h
+++ b/GUI/coregui/mainwindow/SaveThread.h
@@ -15,7 +15,7 @@
 #ifndef SAVETHREAD_H
 #define SAVETHREAD_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <QThread>
 
diff --git a/GUI/coregui/mainwindow/SplashScreen.cpp b/GUI/coregui/mainwindow/SplashScreen.cpp
index bd41f84960cc880e74a458dcc2c870eec66ca237..223fd4849a1455c78d8fb114ce34a83d43415e38 100644
--- a/GUI/coregui/mainwindow/SplashScreen.cpp
+++ b/GUI/coregui/mainwindow/SplashScreen.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "SplashScreen.h"
-#include "GUIHelpers.h"
-#include "StyleUtils.h"
+#include "GUI/coregui/mainwindow/SplashScreen.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/StyleUtils.h"
 #include <QCoreApplication>
 #include <QDebug>
 #include <QElapsedTimer>
diff --git a/GUI/coregui/mainwindow/SplashScreen.h b/GUI/coregui/mainwindow/SplashScreen.h
index 10b0888ff10d282c313664052990c04831f38349..c88cae37b9dcca2e493f781c58c68aa951ee1db2 100644
--- a/GUI/coregui/mainwindow/SplashScreen.h
+++ b/GUI/coregui/mainwindow/SplashScreen.h
@@ -15,7 +15,7 @@
 #ifndef SPLASHSCREEN_H
 #define SPLASHSCREEN_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QSplashScreen>
 
 class BA_CORE_API_ SplashScreen : public QSplashScreen
diff --git a/GUI/coregui/mainwindow/StyledToolBar.cpp b/GUI/coregui/mainwindow/StyledToolBar.cpp
index fd64c841f78f71929f5423e01d9f5d9fb1f60f9c..1576652d741401b725227f765baaf688a0df2468 100644
--- a/GUI/coregui/mainwindow/StyledToolBar.cpp
+++ b/GUI/coregui/mainwindow/StyledToolBar.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "StyledToolBar.h"
+#include "GUI/coregui/mainwindow/StyledToolBar.h"
 #include <QLabel>
 #include <QStyle>
 
diff --git a/GUI/coregui/mainwindow/StyledToolBar.h b/GUI/coregui/mainwindow/StyledToolBar.h
index 6de99c18f0fb20e244e6510219c9956e07520971..2a5f112336407b9807b7a97ee220b72c48ca779b 100644
--- a/GUI/coregui/mainwindow/StyledToolBar.h
+++ b/GUI/coregui/mainwindow/StyledToolBar.h
@@ -15,7 +15,7 @@
 #ifndef STYLEDTOOLBAR_H
 #define STYLEDTOOLBAR_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QToolBar>
 
 //! The StyledToolBar class represents our standard narrow toolbar with the height 24 pixels.
diff --git a/GUI/coregui/mainwindow/UpdateNotifier.cpp b/GUI/coregui/mainwindow/UpdateNotifier.cpp
index ce975f44a2e44d5b692bf492960935fd38a13fbc..695d308aea610cb951b4d6537bcdb58aff6ba64b 100644
--- a/GUI/coregui/mainwindow/UpdateNotifier.cpp
+++ b/GUI/coregui/mainwindow/UpdateNotifier.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "UpdateNotifier.h"
-#include "GUIHelpers.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/mainwindow/UpdateNotifier.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include <QtNetwork>
 
 UpdateNotifier::UpdateNotifier(QObject* parent)
diff --git a/GUI/coregui/mainwindow/UpdateNotifier.h b/GUI/coregui/mainwindow/UpdateNotifier.h
index 77d5c5422b42f686bed8bd64fd568c86b1d16d70..ce821e991703debc5164e9fd346710899863ea44 100644
--- a/GUI/coregui/mainwindow/UpdateNotifier.h
+++ b/GUI/coregui/mainwindow/UpdateNotifier.h
@@ -15,7 +15,7 @@
 #ifndef UPDATENOTIFIER_H
 #define UPDATENOTIFIER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class QNetworkAccessManager;
diff --git a/GUI/coregui/mainwindow/UpdateNotifierWidget.cpp b/GUI/coregui/mainwindow/UpdateNotifierWidget.cpp
index 69b9383624822ff910aa3464e9bbb5a2404bf278..8bf9a955f59ec24c5953964e1fcfdc3d9c21e7c6 100644
--- a/GUI/coregui/mainwindow/UpdateNotifierWidget.cpp
+++ b/GUI/coregui/mainwindow/UpdateNotifierWidget.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "UpdateNotifierWidget.h"
-#include "UpdateNotifier.h"
+#include "GUI/coregui/mainwindow/UpdateNotifierWidget.h"
+#include "GUI/coregui/mainwindow/UpdateNotifier.h"
 #include <QDebug>
 #include <QDesktopServices>
 #include <QHBoxLayout>
diff --git a/GUI/coregui/mainwindow/UpdateNotifierWidget.h b/GUI/coregui/mainwindow/UpdateNotifierWidget.h
index f8ccef2598aae3693875e0d9776059046c0d9d3c..a51f8c3c5175905c8b7e70b61ca6787d77b754e7 100644
--- a/GUI/coregui/mainwindow/UpdateNotifierWidget.h
+++ b/GUI/coregui/mainwindow/UpdateNotifierWidget.h
@@ -15,7 +15,7 @@
 #ifndef UPDATENOTIFIERWIDGET_H
 #define UPDATENOTIFIERWIDGET_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QWidget>
 
 class UpdateNotifier;
diff --git a/GUI/coregui/mainwindow/aboutapplicationdialog.cpp b/GUI/coregui/mainwindow/aboutapplicationdialog.cpp
index bfe09a01cd4730e334e934ee7bd729ee6b4dd0fe..7ae21f6908f5f8e7d06a7e9e90af79214923a21c 100644
--- a/GUI/coregui/mainwindow/aboutapplicationdialog.cpp
+++ b/GUI/coregui/mainwindow/aboutapplicationdialog.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "aboutapplicationdialog.h"
-#include "CustomEventFilters.h"
-#include "DesignerHelper.h"
-#include "GUIHelpers.h"
+#include "GUI/coregui/mainwindow/aboutapplicationdialog.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 #include <QDate>
 #include <QLabel>
 #include <QPushButton>
diff --git a/GUI/coregui/mainwindow/aboutapplicationdialog.h b/GUI/coregui/mainwindow/aboutapplicationdialog.h
index 2bf47362b97bd2f52d7d7a43ff9c23eddb38e1df..e4584c9d80853af4ab7bb06052b1db6c928be00e 100644
--- a/GUI/coregui/mainwindow/aboutapplicationdialog.h
+++ b/GUI/coregui/mainwindow/aboutapplicationdialog.h
@@ -15,7 +15,7 @@
 #ifndef ABOUTAPPLICATIONDIALOG_H
 #define ABOUTAPPLICATIONDIALOG_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 
 class QBoxLayout;
diff --git a/GUI/coregui/mainwindow/actionmanager.cpp b/GUI/coregui/mainwindow/actionmanager.cpp
index 7d9fb87ec6f3118af0d2201fb5a23e501f1465ae..4b3246a18bd3c04caced6e0de78d56ef05430a90 100644
--- a/GUI/coregui/mainwindow/actionmanager.cpp
+++ b/GUI/coregui/mainwindow/actionmanager.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "actionmanager.h"
-#include "PyImportAssistant.h"
-#include "SysUtils.h"
-#include "UpdateNotifier.h"
-#include "aboutapplicationdialog.h"
-#include "hostosinfo.h"
-#include "mainwindow.h"
-#include "mainwindow_constants.h"
-#include "projectmanager.h"
-#include "qstringutils.h"
+#include "GUI/coregui/mainwindow/actionmanager.h"
+#include "GUI/coregui/mainwindow/PyImportAssistant.h"
+#include "Core/Tools/SysUtils.h"
+#include "GUI/coregui/mainwindow/UpdateNotifier.h"
+#include "GUI/coregui/mainwindow/aboutapplicationdialog.h"
+#include "GUI/coregui/utils/hostosinfo.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
+#include "GUI/coregui/utils/qstringutils.h"
 #include <QDir>
 #include <QMenuBar>
 #include <QSettings>
diff --git a/GUI/coregui/mainwindow/actionmanager.h b/GUI/coregui/mainwindow/actionmanager.h
index 5792b6ac78147504da3d0e35adb545fe3accb1a9..fca511663e022214148de2c17a2803abb9d728be 100644
--- a/GUI/coregui/mainwindow/actionmanager.h
+++ b/GUI/coregui/mainwindow/actionmanager.h
@@ -15,7 +15,7 @@
 #ifndef ACTIONMANAGER_H
 #define ACTIONMANAGER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class QMenu;
diff --git a/GUI/coregui/mainwindow/mainwindow.cpp b/GUI/coregui/mainwindow/mainwindow.cpp
index 6f5976431f5190fe0e6d4128255d9a71432a3bb0..05b666ff03e9d9f8358a1a16f6ee40d110d29c65 100644
--- a/GUI/coregui/mainwindow/mainwindow.cpp
+++ b/GUI/coregui/mainwindow/mainwindow.cpp
@@ -12,26 +12,26 @@
 //
 // ************************************************************************** //
 
-#include "mainwindow.h"
-#include "ApplicationModels.h"
-#include "GUIHelpers.h"
-#include "ImportDataView.h"
-#include "InstrumentView.h"
-#include "JobModel.h"
-#include "JobView.h"
-#include "SampleView.h"
-#include "SessionModelView.h"
-#include "SimulationView.h"
-#include "UpdateNotifier.h"
-#include "WelcomeView.h"
-#include "actionmanager.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/ImportDataView.h"
+#include "GUI/coregui/Views/InstrumentView.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Views/JobView.h"
+#include "GUI/coregui/Views/SampleView.h"
+#include "GUI/coregui/Views/SessionModelView.h"
+#include "GUI/coregui/Views/SimulationView.h"
+#include "GUI/coregui/mainwindow/UpdateNotifier.h"
+#include "GUI/coregui/Views/WelcomeView.h"
+#include "GUI/coregui/mainwindow/actionmanager.h"
 #include "fancytabwidget.h"
-#include "hostosinfo.h"
-#include "mainwindow_constants.h"
+#include "GUI/coregui/utils/hostosinfo.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
 #include "progressbar.h"
-#include "projectmanager.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
 #include "stylehelper.h"
-#include "tooltipdatabase.h"
+#include "GUI/coregui/mainwindow/tooltipdatabase.h"
 #include <QAction>
 #include <QApplication>
 #include <QCloseEvent>
diff --git a/GUI/coregui/mainwindow/mainwindow.h b/GUI/coregui/mainwindow/mainwindow.h
index 7c644cf98b53bfea7bc852d07d300d0d522d0795..aae9cfa0713d6e5a3182fb783614e56f949ecfba 100644
--- a/GUI/coregui/mainwindow/mainwindow.h
+++ b/GUI/coregui/mainwindow/mainwindow.h
@@ -15,7 +15,7 @@
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include "fancymainwindow.h"
 
 namespace Manhattan
diff --git a/GUI/coregui/mainwindow/newprojectdialog.cpp b/GUI/coregui/mainwindow/newprojectdialog.cpp
index 8058bd37e3c0a211c8a54575612551e2ad692416..d9590b8c7142a05afa177a178903a8eaee7afe88 100644
--- a/GUI/coregui/mainwindow/newprojectdialog.cpp
+++ b/GUI/coregui/mainwindow/newprojectdialog.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "newprojectdialog.h"
-#include "projectdocument.h"
+#include "GUI/coregui/mainwindow/newprojectdialog.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
 #include <QFileDialog>
 #include <QGroupBox>
 #include <QLabel>
diff --git a/GUI/coregui/mainwindow/newprojectdialog.h b/GUI/coregui/mainwindow/newprojectdialog.h
index e9006ac261aabf3edd0ad821859ee74ab0acc100..fb3f85152fcf99fe5be01e194ccd58be6167debb 100644
--- a/GUI/coregui/mainwindow/newprojectdialog.h
+++ b/GUI/coregui/mainwindow/newprojectdialog.h
@@ -15,7 +15,7 @@
 #ifndef NEWPROJECTDIALOG_H
 #define NEWPROJECTDIALOG_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QDialog>
 #include <QLineEdit>
 
diff --git a/GUI/coregui/mainwindow/projectdocument.cpp b/GUI/coregui/mainwindow/projectdocument.cpp
index 4fb22cebac519c9ad6e5f93b091ab0d3198d865b..79f1454f2cc5b43ea996cc3b01c1df015db7b821 100644
--- a/GUI/coregui/mainwindow/projectdocument.cpp
+++ b/GUI/coregui/mainwindow/projectdocument.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "projectdocument.h"
-#include "ApplicationModels.h"
-#include "GUIHelpers.h"
-#include "JobModel.h"
-#include "MessageService.h"
-#include "OutputDataIOService.h"
-#include "ProjectUtils.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "GUI/coregui/mainwindow/OutputDataIOService.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
 #include <QDir>
 #include <QElapsedTimer>
 #include <QXmlStreamReader>
diff --git a/GUI/coregui/mainwindow/projectdocument.h b/GUI/coregui/mainwindow/projectdocument.h
index f8fed7936a4be498eb065a49b86514c49394230e..09ef6414f94384c0f0ce1018408811ae655ceac9 100644
--- a/GUI/coregui/mainwindow/projectdocument.h
+++ b/GUI/coregui/mainwindow/projectdocument.h
@@ -15,8 +15,8 @@
 #ifndef PROJECTDOCUMENT_H
 #define PROJECTDOCUMENT_H
 
-#include "ProjectFlags.h"
-#include "WinDllMacros.h"
+#include "GUI/coregui/mainwindow/ProjectFlags.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 class QIODevice;
diff --git a/GUI/coregui/mainwindow/projectmanager.cpp b/GUI/coregui/mainwindow/projectmanager.cpp
index 616b99b792451ca15dd1bc61812b684175f3506c..0f7fcd2d5a63aa3c58eddbc97c180c43231f485d 100644
--- a/GUI/coregui/mainwindow/projectmanager.cpp
+++ b/GUI/coregui/mainwindow/projectmanager.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "projectmanager.h"
-#include "AppSvc.h"
-#include "ApplicationModels.h"
-#include "GUIHelpers.h"
-#include "MessageService.h"
-#include "ProjectLoadWarningDialog.h"
-#include "ProjectUtils.h"
-#include "SaveService.h"
-#include "mainwindow.h"
-#include "mainwindow_constants.h"
-#include "newprojectdialog.h"
-#include "projectdocument.h"
+#include "GUI/coregui/mainwindow/projectmanager.h"
+#include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "GUI/coregui/Views/InfoWidgets/ProjectLoadWarningDialog.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/mainwindow/SaveService.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/mainwindow/mainwindow_constants.h"
+#include "GUI/coregui/mainwindow/newprojectdialog.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
 #include <QApplication>
 #include <QDateTime>
 #include <QFileDialog>
diff --git a/GUI/coregui/mainwindow/projectmanager.h b/GUI/coregui/mainwindow/projectmanager.h
index 1bb48a135329f59254d64c91813b676c8ee0135e..b847df611c9e7e2e13a5f6688857a8005614f4b0 100644
--- a/GUI/coregui/mainwindow/projectmanager.h
+++ b/GUI/coregui/mainwindow/projectmanager.h
@@ -15,7 +15,7 @@
 #ifndef PROJECTMANAGER_H
 #define PROJECTMANAGER_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 #include <QStringList>
 
diff --git a/GUI/coregui/mainwindow/tooltipdatabase.cpp b/GUI/coregui/mainwindow/tooltipdatabase.cpp
index c3cae0c581d03cedb66b857f073f014961ae2098..f19cfe32a64b63a4649d5d984a2dcd64c748960b 100644
--- a/GUI/coregui/mainwindow/tooltipdatabase.cpp
+++ b/GUI/coregui/mainwindow/tooltipdatabase.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "tooltipdatabase.h"
-#include "GUIHelpers.h"
-#include "item_constants.h"
+#include "GUI/coregui/mainwindow/tooltipdatabase.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QFile>
 #include <QXmlStreamReader>
 
diff --git a/GUI/coregui/mainwindow/tooltipdatabase.h b/GUI/coregui/mainwindow/tooltipdatabase.h
index 97eea78c8a415320300fa1deea1eae2f8209cb2a..2a0518c55bec1bc2df252d3c833c07bd47aca17a 100644
--- a/GUI/coregui/mainwindow/tooltipdatabase.h
+++ b/GUI/coregui/mainwindow/tooltipdatabase.h
@@ -15,7 +15,7 @@
 #ifndef TOOLTIPDATABASE_H
 #define TOOLTIPDATABASE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QObject>
 
diff --git a/GUI/coregui/utils/CustomEventFilters.cpp b/GUI/coregui/utils/CustomEventFilters.cpp
index b1760edb05d3d19b361191eebb4579cf8dbced26..54b07ef9fe6ee4bf5918b31ceb8d3c7c80e563c2 100644
--- a/GUI/coregui/utils/CustomEventFilters.cpp
+++ b/GUI/coregui/utils/CustomEventFilters.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "CustomEventFilters.h"
+#include "GUI/coregui/utils/CustomEventFilters.h"
 #include <QApplication>
 #include <QComboBox>
 #include <QKeyEvent>
diff --git a/GUI/coregui/utils/CustomEventFilters.h b/GUI/coregui/utils/CustomEventFilters.h
index 066d77edc473a4bc7e485e5145b61171c32acfa9..cb23f338857e37d92c685b5d87eeb2a201fd918e 100644
--- a/GUI/coregui/utils/CustomEventFilters.h
+++ b/GUI/coregui/utils/CustomEventFilters.h
@@ -15,7 +15,7 @@
 #ifndef CUSTOMEVENTFILTERS_H
 #define CUSTOMEVENTFILTERS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QObject>
 
 //! Filter out space bar key events, which is special case for dialog windows.
diff --git a/GUI/coregui/utils/FancyLabel.cpp b/GUI/coregui/utils/FancyLabel.cpp
index a40db60e32490f494091632c2938a510830acd1a..9024e1fc3ce0cb1e3b0033b3bfb9daac073d0af8 100644
--- a/GUI/coregui/utils/FancyLabel.cpp
+++ b/GUI/coregui/utils/FancyLabel.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "FancyLabel.h"
+#include "GUI/coregui/utils/FancyLabel.h"
 #include <QTimer>
 
 FancyLabel::FancyLabel(const QString& text, QWidget* parent) : QLabel(text, parent)
diff --git a/GUI/coregui/utils/FancyLabel.h b/GUI/coregui/utils/FancyLabel.h
index 8d19a35a7a5fa6b0a2d0308baed25140f2f5980c..7f493161cb01be1ccaf4badb48ed3a99a6c47729 100644
--- a/GUI/coregui/utils/FancyLabel.h
+++ b/GUI/coregui/utils/FancyLabel.h
@@ -15,7 +15,7 @@
 #ifndef FANCYLABEL_H
 #define FANCYLABEL_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QLabel>
 
 //! The FancyLabel class is QLabel-like class with trivail animation, when text slowly
diff --git a/GUI/coregui/utils/GUIHelpers.cpp b/GUI/coregui/utils/GUIHelpers.cpp
index 953cd7b998f2d0dc88893f211ada22c285708ef6..206d3284d4806f5272397ad04a62cb3324a6bfef 100644
--- a/GUI/coregui/utils/GUIHelpers.cpp
+++ b/GUI/coregui/utils/GUIHelpers.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "GUIHelpers.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 #include "BAVersion.h"
-#include "JobItem.h"
-#include "RealDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/RealDataItem.h"
 #include <QApplication>
 #include <QDateTime>
 #include <QDir>
diff --git a/GUI/coregui/utils/GUIHelpers.h b/GUI/coregui/utils/GUIHelpers.h
index 3d2db9400f222ccb897bc278288a75bcac196c1e..0964edb1e13cb9112c8062be412a9ea86a37074e 100644
--- a/GUI/coregui/utils/GUIHelpers.h
+++ b/GUI/coregui/utils/GUIHelpers.h
@@ -15,7 +15,7 @@
 #ifndef GUIHELPERS_H
 #define GUIHELPERS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QStringList>
 #include <QWidget>
 #include <memory>
diff --git a/GUI/coregui/utils/GUIMessage.cpp b/GUI/coregui/utils/GUIMessage.cpp
index 756d8b75f644653596eee4ad4e5597d3140dc8a3..90e12dd3154b0ad218ed9a9d5d4ba7cb4972c40a 100644
--- a/GUI/coregui/utils/GUIMessage.cpp
+++ b/GUI/coregui/utils/GUIMessage.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "GUIMessage.h"
+#include "GUI/coregui/utils/GUIMessage.h"
 #include <QObject>
 
 GUIMessage::GUIMessage(const QString& senderName, const QString& messageType,
diff --git a/GUI/coregui/utils/GUIMessage.h b/GUI/coregui/utils/GUIMessage.h
index 668b2230bc9d687a9eb1c1e24246f57e55c8831f..276c693b2fe012c50f7b25e7f33af3ee17bc7b19 100644
--- a/GUI/coregui/utils/GUIMessage.h
+++ b/GUI/coregui/utils/GUIMessage.h
@@ -15,7 +15,7 @@
 #ifndef GUIMESSAGE_H
 #define GUIMESSAGE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 class QObject;
diff --git a/GUI/coregui/utils/ImportDataInfo.cpp b/GUI/coregui/utils/ImportDataInfo.cpp
index 30bddd0ae5d9942fea50ff6d9c76b1bd740d97a3..e0d3f5d8cd64ac68e184d678c5f959a90aef5a94 100644
--- a/GUI/coregui/utils/ImportDataInfo.cpp
+++ b/GUI/coregui/utils/ImportDataInfo.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "ImportDataInfo.h"
-#include "AxisNames.h"
-#include "GUIHelpers.h"
-#include "ImportDataUtils.h"
-#include "JobItemUtils.h"
-#include "OutputData.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "Core/Instrument/AxisNames.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "Core/Instrument/OutputData.h"
 
 namespace
 {
diff --git a/GUI/coregui/utils/ImportDataInfo.h b/GUI/coregui/utils/ImportDataInfo.h
index 9347d6b2a419048f78323b10c73d2f475d2349c5..45083425f1d77e8a47b4d272023f1ed9f1f89870 100644
--- a/GUI/coregui/utils/ImportDataInfo.h
+++ b/GUI/coregui/utils/ImportDataInfo.h
@@ -15,8 +15,8 @@
 #ifndef IMPORTDATAINFO_H
 #define IMPORTDATAINFO_H
 
-#include "IUnitConverter.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/IUnitConverter.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 #include <memory>
 
diff --git a/GUI/coregui/utils/ItemIDFactory.cpp b/GUI/coregui/utils/ItemIDFactory.cpp
index 3c3780ad7380fb4b5fce1d31b64353ae53fb0670..87b4ac0d34bec94e2bd8ce4cf5488f6d03a2e86c 100644
--- a/GUI/coregui/utils/ItemIDFactory.cpp
+++ b/GUI/coregui/utils/ItemIDFactory.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ItemIDFactory.h"
+#include "GUI/coregui/utils/ItemIDFactory.h"
 
 ItemIDFactory& ItemIDFactory::instance()
 {
diff --git a/GUI/coregui/utils/LayoutUtils.cpp b/GUI/coregui/utils/LayoutUtils.cpp
index ea542401a7e4671c56e98c44398abbc2341f332f..7013fb7d56aad46908dc62d74fbb3a59fc0cd28a 100644
--- a/GUI/coregui/utils/LayoutUtils.cpp
+++ b/GUI/coregui/utils/LayoutUtils.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "LayoutUtils.h"
+#include "GUI/coregui/utils/LayoutUtils.h"
 #include <QBoxLayout>
 #include <QGridLayout>
 #include <QLayoutItem>
diff --git a/GUI/coregui/utils/LayoutUtils.h b/GUI/coregui/utils/LayoutUtils.h
index 333201d9c38e4155f363e2c3469b098c692ec3b2..f151a3f02eab4935b7cbaaa19adf99a68fcbae8d 100644
--- a/GUI/coregui/utils/LayoutUtils.h
+++ b/GUI/coregui/utils/LayoutUtils.h
@@ -15,7 +15,7 @@
 #ifndef LAYOUTUTILS_H
 #define LAYOUTUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 class QLayout;
 class QGridLayout;
diff --git a/GUI/coregui/utils/MessageService.cpp b/GUI/coregui/utils/MessageService.cpp
index 2fc9d9859cfeb3f91d558ae55c23125f0d663428..7b6f7c36853db61dbd0484eea7996066a2637b82 100644
--- a/GUI/coregui/utils/MessageService.cpp
+++ b/GUI/coregui/utils/MessageService.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MessageService.h"
-#include "GUIMessage.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "GUI/coregui/utils/GUIMessage.h"
 #include <QObject>
 #include <QSet>
 
diff --git a/GUI/coregui/utils/MessageService.h b/GUI/coregui/utils/MessageService.h
index 0f451d2b8901a576863efeec055f19409f9949d4..cd41c6e8c36c82873d0f795a15ef8eea8624835b 100644
--- a/GUI/coregui/utils/MessageService.h
+++ b/GUI/coregui/utils/MessageService.h
@@ -15,7 +15,7 @@
 #ifndef MESSAGESERVICE_H
 #define MESSAGESERVICE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QMap>
 #include <QStringList>
 
diff --git a/GUI/coregui/utils/StyleUtils.cpp b/GUI/coregui/utils/StyleUtils.cpp
index 71deb838a3743d4f4ecccc3df0bef2cc473d206a..275853ac48758a93a1ce9662b5b218113987e00a 100644
--- a/GUI/coregui/utils/StyleUtils.cpp
+++ b/GUI/coregui/utils/StyleUtils.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "StyleUtils.h"
-#include "DesignerHelper.h"
-#include "detailswidget.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/utils/StyleUtils.h"
+#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
+#include "GUI/coregui/Views/CommonWidgets/detailswidget.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 #include <QApplication>
 #include <QBoxLayout>
 #include <QDialog>
diff --git a/GUI/coregui/utils/StyleUtils.h b/GUI/coregui/utils/StyleUtils.h
index c8ede8e732ab11d54501ecc02ae5c0b168fcc1c2..091c6f748c4b522c9e15d30bd4cdf5c9af556269 100644
--- a/GUI/coregui/utils/StyleUtils.h
+++ b/GUI/coregui/utils/StyleUtils.h
@@ -15,7 +15,7 @@
 #ifndef STYLEUTILS_H
 #define STYLEUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QFont>
 #include <QString>
 
diff --git a/GUI/coregui/utils/hostosinfo.h b/GUI/coregui/utils/hostosinfo.h
index b6dd3210029294408f7c4f24c3eb3c1d326a141a..bbcef47c9531af82e802344c672539731e769171 100644
--- a/GUI/coregui/utils/hostosinfo.h
+++ b/GUI/coregui/utils/hostosinfo.h
@@ -15,7 +15,7 @@
 #ifndef HOSTOSINFO_H
 #define HOSTOSINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 namespace GUI_OS_Utils
diff --git a/GUI/coregui/utils/qstringutils.cpp b/GUI/coregui/utils/qstringutils.cpp
index 5dc3d8eea147faebf3a6f327b8cc036cd8f7d19f..1468927c68f7f3660655c1724d3638517ca2710b 100644
--- a/GUI/coregui/utils/qstringutils.cpp
+++ b/GUI/coregui/utils/qstringutils.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "qstringutils.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/utils/qstringutils.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 #include <QDir>
 
 namespace GUI_StringUtils
diff --git a/GUI/coregui/utils/qstringutils.h b/GUI/coregui/utils/qstringutils.h
index 3c816bb7c5ba09e6d21c80533c73d7edeeac348c..cc29f4d670cb8791ad538b42892bdc674f778582 100644
--- a/GUI/coregui/utils/qstringutils.h
+++ b/GUI/coregui/utils/qstringutils.h
@@ -15,7 +15,7 @@
 #ifndef QSTRINGUTILS_H
 #define QSTRINGUTILS_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <QString>
 
 namespace GUI_StringUtils
diff --git a/GUI/main/appoptions.cpp b/GUI/main/appoptions.cpp
index 98c65e72409effaae3475e527df900ecf5fa45c4..7cb7c7b18dd03a4d0eecd3d2eaad607ad8186a92 100644
--- a/GUI/main/appoptions.cpp
+++ b/GUI/main/appoptions.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "appoptions.h"
-#include "GUIHelpers.h"
+#include "GUI/main/appoptions.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
 #include <QSize>
 #include <boost/program_options/config.hpp>
 #include <boost/program_options/parsers.hpp>
diff --git a/GUI/main/main.cpp b/GUI/main/main.cpp
index fdacb2637987daf9a4cc17793a9ead6da9b487fa..12aad4267f51f2c8e9802e8148182ebb0ac9dc2b 100644
--- a/GUI/main/main.cpp
+++ b/GUI/main/main.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "FitProgressInfo.h"
-#include "SplashScreen.h"
-#include "appoptions.h"
-#include "mainwindow.h"
-#include "hostosinfo.h"
+#include "GUI/coregui/Views/FitWidgets/FitProgressInfo.h"
+#include "GUI/coregui/mainwindow/SplashScreen.h"
+#include "GUI/main/appoptions.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
+#include "GUI/coregui/utils/hostosinfo.h"
 #include <QApplication>
 #include <QLocale>
 #include <QMetaType>
diff --git a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp
index d835af10e0c7b046ce28a138a5ee490b373c99f5..4585e869a02c617830cd3781993cf2a3a4656976 100644
--- a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp
+++ b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "BatchSimulation.h"
-#include "IFunctionalTest.h"
-#include "IntensityDataFunctions.h"
-#include "SampleBuilderFactory.h"
-#include "Simulation.h"
-#include "SimulationFactory.h"
+#include "Tests/Functional/Core/CoreSpecial/BatchSimulation.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/StandardSamples/SimulationFactory.h"
 #include <iostream>
 #include <memory>
 
diff --git a/Tests/Functional/Core/CoreSpecial/BatchSimulation.h b/Tests/Functional/Core/CoreSpecial/BatchSimulation.h
index ac3bb844ddef49e0bd8816d5cedcc1dcc10008a0..4439dbeb26beea3c3c6e4cb43c5bc8abd7e339c1 100644
--- a/Tests/Functional/Core/CoreSpecial/BatchSimulation.h
+++ b/Tests/Functional/Core/CoreSpecial/BatchSimulation.h
@@ -15,7 +15,7 @@
 #ifndef BATCHSIMULATION_H
 #define BATCHSIMULATION_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Special test for simulation running in batch mode.
 
diff --git a/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp b/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp
index f24d37a689ef6a3d2b91f2c856b054deaea2063d..ff14f29ea6cf1ece513ed4b1ae2370c2352d048a 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "CoreIOPathTest.h"
+#include "Tests/Functional/Core/CoreSpecial/CoreIOPathTest.h"
 #include "BATesting.h"
-#include "FileSystemUtils.h"
-#include "IntensityDataIOFactory.h"
-#include "OutputData.h"
-#include "TestUtils.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 #include <boost/filesystem.hpp>
 #include <iostream>
 #include <memory>
diff --git a/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.h b/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.h
index 8ade372455cfc803e68f5b2202eb225d36e61b00..92794791d1727178ce22a92156e541e38f7d1e53 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.h
+++ b/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.h
@@ -15,7 +15,7 @@
 #ifndef COREIOPATHTEST_H
 #define COREIOPATHTEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Functional test to validate read/write to files containing non-ascii characters in a path.
 
diff --git a/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.cpp b/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.cpp
index b2883dfa8860e0de2eb6b1f48c389a7cc9f11097..b3e148936b6325803ccb03ab0fedc64a4d10dedd 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "CoreIOPerformanceTest.h"
-#include "Benchmark.h"
-#include "IntensityDataIOFactory.h"
-#include "Numeric.h"
+#include "Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.h"
+#include "Tests/Functional/TestMachinery/Benchmark.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Tools/Numeric.h"
 #include <boost/format.hpp>
 #include <cassert>
 #include <iomanip>
diff --git a/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.h b/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.h
index 2f28eea4dd4bcfa44dcd41276d5fdcff74b5d99b..8d98f67d02b5185b296ab286029137b61a134b26 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.h
+++ b/Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.h
@@ -15,9 +15,9 @@
 #ifndef COREIOPERFORMANCETEST_H
 #define COREIOPERFORMANCETEST_H
 
-#include "Benchmark.h"
-#include "IFunctionalTest.h"
-#include "OutputData.h"
+#include "Tests/Functional/TestMachinery/Benchmark.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
+#include "Core/Instrument/OutputData.h"
 #include <memory>
 
 //! Functional test to validate read/write of large data files.
diff --git a/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.cpp b/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.cpp
index 02688893c5c1e0f9dadbc96ed540bbde5d9da4ae..53e20a126fb8026956c708955ff4df3cb1aa821a 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.cpp
+++ b/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "CoreSpecialTestFactory.h"
-#include "BatchSimulation.h"
-#include "CoreIOPathTest.h"
-#include "CoreIOPerformanceTest.h"
-#include "FourierTransformationTest.h"
-#include "MesoCrystalPerformanceTest.h"
-#include "MultiThreadPerformanceTest.h"
-#include "MultilayerPerformanceTest.h"
+#include "Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.h"
+#include "Tests/Functional/Core/CoreSpecial/BatchSimulation.h"
+#include "Tests/Functional/Core/CoreSpecial/CoreIOPathTest.h"
+#include "Tests/Functional/Core/CoreSpecial/CoreIOPerformanceTest.h"
+#include "Tests/Functional/Core/CoreSpecial/FourierTransformationTest.h"
+#include "Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.h"
+#include "Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.h"
+#include "Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.h"
 
 CoreSpecialTestFactory::CoreSpecialTestFactory()
 {
diff --git a/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.h b/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.h
index 15bdd0ce655cf307a667fc03413c5779a07464ef..e821d782c8f1a33cdb69cc63b629b331ece7e371 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.h
+++ b/Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.h
@@ -15,7 +15,7 @@
 #ifndef CORESPECIALTESTFACTORY_H
 #define CORESPECIALTESTFACTORY_H
 
-#include "FunctionalTestFactory.h"
+#include "Tests/Functional/TestMachinery/FunctionalTestFactory.h"
 
 //! @class CoreSpecialTestFactory
 //! @brief Collection of special case for Core library.
diff --git a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp
index dbcb6220b4b2755184e5f31115095192145cec09..66a53e0cc1093fc1b2ecad0d924e62b45e136828 100644
--- a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "FourierTransformationTest.h"
+#include "Tests/Functional/Core/CoreSpecial/FourierTransformationTest.h"
 #include "BATesting.h"
-#include "FileSystemUtils.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataIOFactory.h"
-#include "OutputData.h"
-#include "TestUtils.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 #include <iostream>
 #include <memory>
 #include <vector>
diff --git a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.h b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.h
index ec69b3d5f714759a4bbbfb52c234c4f79848e65a..fecc5fdc859996adcb4045411738a7c86642884b 100644
--- a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.h
+++ b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.h
@@ -15,7 +15,7 @@
 #ifndef FOURIERTRANSFORMATIONTEST_H
 #define FOURIERTRANSFORMATIONTEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Transforms GISAS image and compares results against reference file.
 
diff --git a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.cpp b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.cpp
index b461e461e3384d3cb952fdde8ebd46616cd6b258..83ce20f5e48d99c7ffbb15cab92d1d9f0ac27878 100644
--- a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.cpp
+++ b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.cpp
@@ -12,21 +12,21 @@
 //
 // ************************************************************************** //
 
-#include "MesoCrystalPerformanceBuilder.h"
-#include "Crystal.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorSphereLogNormalRadius.h"
-#include "ISelectionRule.h"
-#include "Lattice.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MesoCrystal.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleLayout.h"
-#include "Units.h"
+#include "Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/SoftParticle/FormFactorSphereLogNormalRadius.h"
+#include "Core/Lattice/ISelectionRule.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/Units.h"
 
 using Units::deg;
 using Units::nm;
diff --git a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.h b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.h
index 3301253feb91155053dab03f4e2a73cdc8a1087c..94e22b7c7ccca3890d89750764976fa67301f50d 100644
--- a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.h
+++ b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.h
@@ -15,8 +15,8 @@
 #ifndef MESOCRYSTALPERFORMANCEBUILDER_H
 #define MESOCRYSTALPERFORMANCEBUILDER_H
 
-#include "IMultiLayerBuilder.h"
-#include "Material.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Material/Material.h"
 
 class MesoCrystal;
 class IFormFactor;
diff --git a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.cpp b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.cpp
index 21bf8682d97a3b1b0ca31649ca48bd45e611d984..6f2292fa305d784ed6f19684ecd759265c0b6fcd 100644
--- a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MesoCrystalPerformanceTest.h"
-#include "GISASSimulation.h"
-#include "MesoCrystalPerformanceBuilder.h"
-#include "RectangularDetector.h"
-#include "Units.h"
+#include "Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceBuilder.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Parametrization/Units.h"
 #include <iostream>
 
 namespace
diff --git a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.h b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.h
index c4dfbe9b1220c9407cd374d76f63bce855e252d7..c15f9b9acd88c4bded6fcbbbb39e1830ee41ef44 100644
--- a/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.h
+++ b/Tests/Functional/Core/CoreSpecial/MesoCrystalPerformanceTest.h
@@ -15,7 +15,7 @@
 #ifndef MESOCRYSTALPERFORMANCETEST_H
 #define MESOCRYSTALPERFORMANCETEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Runs heavy mesocrystal simulation to investigate where it spends time.
 
diff --git a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.cpp b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.cpp
index f7cc2f5a14458e2fc3da98b3763333d9283073cf..333b4379a505bba883a3d9fcee026f2b19cab884 100644
--- a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.cpp
@@ -12,15 +12,15 @@
 //
 // ************************************************************************** //
 
-#include "MultiThreadPerformanceTest.h"
-#include "CylindersBuilder.h"
-#include "Distributions.h"
-#include "GISASSimulation.h"
-#include "MultiLayer.h"
-#include "MultiThreadPerformanceTestComponents.h"
-#include "ParaCrystalBuilder.h"
-#include "ParameterPattern.h"
-#include "Units.h"
+#include "Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.h"
+#include "Core/StandardSamples/CylindersBuilder.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.h"
+#include "Core/StandardSamples/ParaCrystalBuilder.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Parametrization/Units.h"
 #include <algorithm>
 #include <boost/format.hpp>
 #include <chrono>
diff --git a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.h b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.h
index d16dc86a09ef7b5926379ad72baeca2c5bdf4afe..24eb5524e7fe4bc441f1694e75fccdad75597125 100644
--- a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.h
+++ b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTest.h
@@ -15,7 +15,7 @@
 #ifndef MULTITHREADPERFORMANCETEST_H
 #define MULTITHREADPERFORMANCETEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <map>
 #include <vector>
 
diff --git a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp
index f5d90ce753ba4852bc765520c680bb3c096e022f..a9f629ee75ff8ba1823fa3cdfa043e13b698cd1d 100644
--- a/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp
+++ b/Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.cpp
@@ -12,22 +12,22 @@
 //
 // ************************************************************************** //
 
-#include "MultiThreadPerformanceTestComponents.h"
-#include "CylindersBuilder.h"
-#include "Distributions.h"
-#include "FormFactorFullSphere.h"
-#include "GISASSimulation.h"
-#include "InterferenceFunction2DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "ParameterPattern.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "ParticleLayout.h"
-#include "Rectangle.h"
-#include "RectangularDetector.h"
-#include "Units.h"
+#include "Tests/Functional/Core/CoreSpecial/MultiThreadPerformanceTestComponents.h"
+#include "Core/StandardSamples/CylindersBuilder.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Parametrization/Units.h"
 
 namespace
 {
diff --git a/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.cpp b/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.cpp
index 20ff2f3cf881843a60747ccb7389035f61c81e22..70487c4844e5804cb31e028bfca56bc7890a45f0 100644
--- a/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "MultilayerPerformanceTest.h"
-#include "MultiLayer.h"
-#include "PlainMultiLayerBySLDBuilder.h"
-#include "SpecularSimulation.h"
-#include "StandardSimulations.h"
+#include "Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/StandardSamples/PlainMultiLayerBySLDBuilder.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/StandardSamples/StandardSimulations.h"
 #include <chrono>
 
 using Results = std::vector<std::pair<int, long>>;
diff --git a/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.h b/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.h
index fed64c29d14f89ed37315ac54cb355d1700a8095..1bc79a4dce74aa483931b46db628b0b2dd10d8c9 100644
--- a/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.h
+++ b/Tests/Functional/Core/CoreSpecial/MultilayerPerformanceTest.h
@@ -15,7 +15,7 @@
 #ifndef MULTILAYERPERFORMANCETEST_H
 #define MULTILAYERPERFORMANCETEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Functional test for measuring simulation performance on samples with different number of layers.
 
diff --git a/Tests/Functional/Core/CoreSpecial/main.cpp b/Tests/Functional/Core/CoreSpecial/main.cpp
index af1369e32dd1280217aba187e7eb62391e70168e..0f521e503fb7d467cec642db12aefdb83de493c5 100644
--- a/Tests/Functional/Core/CoreSpecial/main.cpp
+++ b/Tests/Functional/Core/CoreSpecial/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "CoreSpecialTestFactory.h"
-#include "TestService.h"
+#include "Tests/Functional/Core/CoreSpecial/CoreSpecialTestFactory.h"
+#include "Tests/Functional/TestMachinery/TestService.h"
 
 //! Runs PyEmbedded functional test.
 int main(int argc, char** argv)
diff --git a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp
index 4bb4eef677d1887bed008c5e6d41acb47688cd1c..eac5a7af574c87d04886f7f648d6e4be9a22d64c 100644
--- a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp
+++ b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "CoreStandardTest.h"
+#include "Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h"
 #include "BABuild.h"
 #include "BATesting.h"
-#include "FileSystemUtils.h"
-#include "IntensityDataIOFactory.h"
-#include "Simulation.h"
-#include "TestUtils.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Simulation/Simulation.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 
 bool CoreStandardTest::runTest()
 {
diff --git a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h
index c7ae5ac392f24f7e7f86557c6831f65fb4063b61..50cac7de6e601974a0451768e7358778d5f8ef01 100644
--- a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h
+++ b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h
@@ -15,7 +15,7 @@
 #ifndef CORESTANDARDTEST_H
 #define CORESTANDARDTEST_H
 
-#include "IStandardTest.h"
+#include "Tests/Functional/TestMachinery/IStandardTest.h"
 
 class Simulation;
 
diff --git a/Tests/Functional/Core/CoreStandardTest/main.cpp b/Tests/Functional/Core/CoreStandardTest/main.cpp
index c797f64c2c2d17b7ab3c582465e78132ed0e21d4..0445bba0e67adc8d6d6365a9d3e06a734224e1b5 100644
--- a/Tests/Functional/Core/CoreStandardTest/main.cpp
+++ b/Tests/Functional/Core/CoreStandardTest/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "CoreStandardTest.h"
-#include "StandardTestService.h"
+#include "Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h"
+#include "Tests/Functional/TestMachinery/StandardTestService.h"
 
 //! Runs CoreStandardTest on a standard simulation indicated by argv[1].
 
diff --git a/Tests/Functional/Core/MPI/mpitest.cpp b/Tests/Functional/Core/MPI/mpitest.cpp
index 2f6246b6b84b421be5058932b5e17a78165035b8..d6ee1b7faa400055300c7bae4ff8020f63941ed8 100644
--- a/Tests/Functional/Core/MPI/mpitest.cpp
+++ b/Tests/Functional/Core/MPI/mpitest.cpp
@@ -1,10 +1,10 @@
 #include <mpi.h>
 
-#include "IntensityDataFunctions.h"
-#include "IntensityDataIOFactory.h"
-#include "MultiLayer.h"
-#include "SampleBuilderFactory.h"
-#include "SimulationFactory.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/StandardSamples/SimulationFactory.h"
 
 #include <iostream>
 
diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp
index 5e1b6b7047a8c030aa0ab471e656e8d3467aa012..5531221b06424a8d3be7e9326dc38adb4ecdd218 100644
--- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp
+++ b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "SelfConsistenceTest.h"
+#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h"
 #include "BATesting.h"
-#include "FileSystemUtils.h"
-#include "IntensityDataIOFactory.h"
-#include "Simulation.h"
-#include "TestUtils.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Simulation/Simulation.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 
 namespace
 {
diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h
index 1fc63901402e48568f36011ee5a91080490fcfca..ece97694ed4ee83129dfbfffa244b8c3576bdb2c 100644
--- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h
+++ b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h
@@ -15,7 +15,7 @@
 #ifndef CORESELFCONSISTENCYTEST_H
 #define CORESELFCONSISTENCYTEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <memory>
 #include <vector>
 
diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp
index 4b581024c7e958562ce5524004419e57b4252a7e..b146fdb46b6b272c7ad1605c6b764269d725cea5 100644
--- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp
+++ b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "SelfConsistenceTestService.h"
-#include "SampleBuilderFactory.h"
-#include "SelfConsistenceTest.h"
-#include "Simulation.h"
-#include "SimulationFactory.h"
-#include "TestUtils.h"
+#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/StandardSamples/SimulationFactory.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 
 using sim_ptr = std::unique_ptr<Simulation>;
 using builder_ptr = std::unique_ptr<IMultiLayerBuilder>;
diff --git a/Tests/Functional/Core/SelfConsistenceTest/main.cpp b/Tests/Functional/Core/SelfConsistenceTest/main.cpp
index 6d7da4d41df8d8366c83ee618d060e328d4aaaee..d13fff8bdcdd0e2366f8ca034aeacd0369ba6975 100644
--- a/Tests/Functional/Core/SelfConsistenceTest/main.cpp
+++ b/Tests/Functional/Core/SelfConsistenceTest/main.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "SelfConsistenceTestService.h"
+#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h"
 
 //! Runs CoreStandardTest on a standard simulation indicated by argv[1].
 
diff --git a/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.cpp b/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.cpp
index cf81d8f14a9c2720a53b51f914da1dc56dc69eb7..5f3587f086f0ed7f20693b0223fe82c4c3bf33d4 100644
--- a/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.cpp
+++ b/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.cpp
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "AdjustMinimizerPlan.h"
-#include "FitObjective.h"
-#include "KernelTypes.h"
-#include "Minimizer.h"
-#include "Parameters.h"
-#include "Units.h"
+#include "Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/Minimizer.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Core/Parametrization/Units.h"
 #include <iostream>
 
 namespace
diff --git a/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.h b/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.h
index 7693203970114d7d07e28622b50ef1cdc0301e5e..1ec005a8f15f1052f7532ff1c07905816e17e4bb 100644
--- a/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.h
+++ b/Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.h
@@ -15,7 +15,7 @@
 #ifndef ADJUSTMINIMIZERPLAN_H
 #define ADJUSTMINIMIZERPLAN_H
 
-#include "FitPlan.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlan.h"
 
 //! Two parameter fit: cylinders in BA with mini GISAS simulation.
 //! Parameters are made far from their original values, Genetic+Minuit used in pair.
diff --git a/Tests/Functional/Fit/FitObjective/FitObjectiveTest.cpp b/Tests/Functional/Fit/FitObjective/FitObjectiveTest.cpp
index 24282a403f82c885f914a9aa062bfb91cde8f3a6..55de2c0f9b8039383592998035d1afaf545b203f 100644
--- a/Tests/Functional/Fit/FitObjective/FitObjectiveTest.cpp
+++ b/Tests/Functional/Fit/FitObjective/FitObjectiveTest.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FitObjectiveTest.h"
-#include "FitPlanFactory.h"
+#include "Tests/Functional/Fit/FitObjective/FitObjectiveTest.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlanFactory.h"
 
 FitObjectiveTest::FitObjectiveTest(const std::string& minimizer_name,
                                    const std::string& algorithm_name,
diff --git a/Tests/Functional/Fit/FitObjective/FitObjectiveTest.h b/Tests/Functional/Fit/FitObjective/FitObjectiveTest.h
index ae0235ff38cbbc1c7d346ce4b8894a4606e625b9..79837ac0f5cc0d87d0848fbba2db6e658cb1bd5e 100644
--- a/Tests/Functional/Fit/FitObjective/FitObjectiveTest.h
+++ b/Tests/Functional/Fit/FitObjective/FitObjectiveTest.h
@@ -15,7 +15,7 @@
 #ifndef FITOBJECTIVETEST_H
 #define FITOBJECTIVETEST_H
 
-#include "IMinimizerTest.h"
+#include "Tests/Functional/TestMachinery/IMinimizerTest.h"
 
 //! Collection of standalone tests for fitting library.
 
diff --git a/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.cpp b/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.cpp
index 7f879103ff769cab1fae1842268f91113546571e..2fca76f40960138af2fb6faf233a82f8ca0e14ed 100644
--- a/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.cpp
+++ b/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "FitObjectiveTestCases.h"
+#include "Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.h"
 
 MigradCylindersInBA::MigradCylindersInBA()
     : FitObjectiveTest("Minuit2", "Migrad", "CylindersInBAPlan")
diff --git a/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.h b/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.h
index 1624aa0e55b09696b103c015be18399d9d0e008b..48c01693cba402822d397ce5b485b3c71d254147 100644
--- a/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.h
+++ b/Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.h
@@ -17,7 +17,7 @@
 
 //! Collection of FitObjective tests.
 
-#include "FitObjectiveTest.h"
+#include "Tests/Functional/Fit/FitObjective/FitObjectiveTest.h"
 
 class MigradCylindersInBA : public FitObjectiveTest
 {
diff --git a/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.cpp b/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.cpp
index 07d50860b0d507ad21ebdd80d2c4e0ac2d13916e..1be82291d691438a56866c0df9145eca3261171d 100644
--- a/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.cpp
+++ b/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FitObjectiveTestFactory.h"
-#include "FitObjectiveTestCases.h"
+#include "Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.h"
+#include "Tests/Functional/Fit/FitObjective/FitObjectiveTestCases.h"
 
 FitObjectiveTestFactory::FitObjectiveTestFactory()
 {
diff --git a/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.h b/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.h
index 024636815780b284f7c27ef49724180728d62519..48c4b1dee21c8d104b5106c6363636fd85d9e1e3 100644
--- a/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.h
+++ b/Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.h
@@ -15,7 +15,7 @@
 #ifndef FITOBJECTIVETESTFACTORY_H
 #define FITOBJECTIVETESTFACTORY_H
 
-#include "FunctionalTestFactory.h"
+#include "Tests/Functional/TestMachinery/FunctionalTestFactory.h"
 
 //! Factory to generate fitting tests. Tests will based on FitObjective approach.
 
diff --git a/Tests/Functional/Fit/FitObjective/FitPlan.cpp b/Tests/Functional/Fit/FitObjective/FitPlan.cpp
index dd9ed604578845313077c40694c503acb17f6850..62d2550fd16eb587f203bcc21c4472455c84cbbf 100644
--- a/Tests/Functional/Fit/FitObjective/FitPlan.cpp
+++ b/Tests/Functional/Fit/FitObjective/FitPlan.cpp
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "FitPlan.h"
-#include "FitObjective.h"
-#include "KernelTypes.h"
-#include "Minimizer.h"
-#include "MultiLayer.h"
-#include "Parameters.h"
-#include "SampleBuilderFactory.h"
-#include "SimulationFactory.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlan.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Fit/Kernel/Minimizer.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/StandardSamples/SimulationFactory.h"
 
 FitPlan::FitPlan(const std::string& name, bool residual_based)
     : MinimizerTestPlan(name), m_residual_based(residual_based)
diff --git a/Tests/Functional/Fit/FitObjective/FitPlan.h b/Tests/Functional/Fit/FitObjective/FitPlan.h
index 253fd89c2ea1abf17cf365487958b71e6d4fbe60..57edb7f98bed3e91dd47ff0d6325afcd16b985a4 100644
--- a/Tests/Functional/Fit/FitObjective/FitPlan.h
+++ b/Tests/Functional/Fit/FitObjective/FitPlan.h
@@ -15,7 +15,7 @@
 #ifndef FITPLAN_H
 #define FITPLAN_H
 
-#include "MinimizerTestPlan.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
 #include <memory>
 
 namespace Fit
diff --git a/Tests/Functional/Fit/FitObjective/FitPlanCases.cpp b/Tests/Functional/Fit/FitObjective/FitPlanCases.cpp
index e179db77a1641463cbc2e30e7ff2352e075fbd8f..6423d0f265ce099817cf155058d444c78899aece 100644
--- a/Tests/Functional/Fit/FitObjective/FitPlanCases.cpp
+++ b/Tests/Functional/Fit/FitObjective/FitPlanCases.cpp
@@ -12,21 +12,21 @@
 //
 // ************************************************************************** //
 
-#include "FitPlanCases.h"
-#include "FTDecayFunctions.h"
-#include "FitObjective.h"
-#include "FormFactorCylinder.h"
-#include "GISASSimulation.h"
-#include "InterferenceFunction2DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "Parameters.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "Rectangle.h"
-#include "RectangularDetector.h"
-#include "Units.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlanCases.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Parametrization/Units.h"
 
 using namespace Fit;
 
diff --git a/Tests/Functional/Fit/FitObjective/FitPlanCases.h b/Tests/Functional/Fit/FitObjective/FitPlanCases.h
index 63fffdd2c010df77371075c8db4e643a03177a19..40e51cd6b0d9f2f81d2d6371d19565e6db51e4b8 100644
--- a/Tests/Functional/Fit/FitObjective/FitPlanCases.h
+++ b/Tests/Functional/Fit/FitObjective/FitPlanCases.h
@@ -15,7 +15,7 @@
 #ifndef FITPLANCASES_H
 #define FITPLANCASES_H
 
-#include "FitPlan.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlan.h"
 
 //! Two parameter fit: cylinders in BA with mini GISAS simulation.
 
diff --git a/Tests/Functional/Fit/FitObjective/FitPlanFactory.cpp b/Tests/Functional/Fit/FitObjective/FitPlanFactory.cpp
index cb5bb393ddca48129424f4692b99159a923ced5d..3582f80e6a87c190bed8fb6ddc4d4bc46eebc397 100644
--- a/Tests/Functional/Fit/FitObjective/FitPlanFactory.cpp
+++ b/Tests/Functional/Fit/FitObjective/FitPlanFactory.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FitPlanFactory.h"
-#include "AdjustMinimizerPlan.h"
-#include "FitPlanCases.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlanFactory.h"
+#include "Tests/Functional/Fit/FitObjective/AdjustMinimizerPlan.h"
+#include "Tests/Functional/Fit/FitObjective/FitPlanCases.h"
 
 FitPlanFactory::FitPlanFactory()
 {
diff --git a/Tests/Functional/Fit/FitObjective/FitPlanFactory.h b/Tests/Functional/Fit/FitObjective/FitPlanFactory.h
index 2a76377984701d02c314cc675f0299e29e2bba96..15279e82e4b90dba5fdae68fcd26ed7c6aac0bd2 100644
--- a/Tests/Functional/Fit/FitObjective/FitPlanFactory.h
+++ b/Tests/Functional/Fit/FitObjective/FitPlanFactory.h
@@ -15,8 +15,8 @@
 #ifndef FITPLANFACTORY_H
 #define FITPLANFACTORY_H
 
-#include "IFactory.h"
-#include "MinimizerTestPlan.h"
+#include "Core/StandardSamples/IFactory.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
 
 //! Factory to generate plans for fitting with FitObjective.
 
diff --git a/Tests/Functional/Fit/FitObjective/main.cpp b/Tests/Functional/Fit/FitObjective/main.cpp
index 7fa2ba093902e0c4746d8ab1fdc250633e18379f..42d2953785d3fb8c9dbf79757a060ccc3d5f0bfd 100644
--- a/Tests/Functional/Fit/FitObjective/main.cpp
+++ b/Tests/Functional/Fit/FitObjective/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FitObjectiveTestFactory.h"
-#include "TestService.h"
+#include "Tests/Functional/Fit/FitObjective/FitObjectiveTestFactory.h"
+#include "Tests/Functional/TestMachinery/TestService.h"
 
 //! Runs functional tests.
 
diff --git a/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.cpp b/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.cpp
index 708b8fb4762c8e5d20433b844cfecf565fe47eb9..f66333af51bdd935454a42f56e66df39bcfbd11f 100644
--- a/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.cpp
+++ b/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "FunctionTestPlanCases.h"
-#include "ObjectiveTestFunctions.h"
-#include "Parameter.h"
+#include "Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.h"
+#include "Tests/Functional/TestMachinery/ObjectiveTestFunctions.h"
+#include "Fit/Kernel/Parameter.h"
 
 namespace
 {
diff --git a/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.h b/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.h
index 95e00ad9abf27fcfd0b3cc2ab41fc58fd8d4d0c9..c6c23beefcc763e2aaa331070b28ad6c1fd8e884 100644
--- a/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.h
+++ b/Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.h
@@ -15,8 +15,8 @@
 #ifndef FUNCTIONTESTPLANCASES_H
 #define FUNCTIONTESTPLANCASES_H
 
-#include "ResidualTestPlan.h"
-#include "ScalarTestPlan.h"
+#include "Tests/Functional/Fit/Minimizer/ResidualTestPlan.h"
+#include "Tests/Functional/Fit/Minimizer/ScalarTestPlan.h"
 
 //! Setting for standalone fit of Rosenbrock function.
 
diff --git a/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.cpp b/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.cpp
index 6adef044adf35c90a7c4a291dd79924d21fc9f6f..ea8bfe27388f0286160a9e172a77556397e107c0 100644
--- a/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.cpp
+++ b/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "FunctionTestPlanFactory.h"
-#include "FunctionTestPlanCases.h"
+#include "Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.h"
+#include "Tests/Functional/Fit/Minimizer/FunctionTestPlanCases.h"
 
 FunctionTestPlanFactory::FunctionTestPlanFactory()
 {
diff --git a/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.h b/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.h
index 55437fff6e78585e3e7a0f529e6e589371d73d4b..5e349e78e8cfe3d4c9218e88453aa0007212927c 100644
--- a/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.h
+++ b/Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.h
@@ -15,8 +15,8 @@
 #ifndef FUNCTIONTESTPLANFACTORY_H
 #define FUNCTIONTESTPLANFACTORY_H
 
-#include "IFactory.h"
-#include "MinimizerTestPlan.h"
+#include "Core/StandardSamples/IFactory.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
 
 //! Factory to generate plans for fitting objective functions.
 
diff --git a/Tests/Functional/Fit/Minimizer/MinimizerTest.cpp b/Tests/Functional/Fit/Minimizer/MinimizerTest.cpp
index 8014791846f8d6bc63f56c6489c23d128fee67d1..7541f8063882e0b1c3a258566d7442718abdb81d 100644
--- a/Tests/Functional/Fit/Minimizer/MinimizerTest.cpp
+++ b/Tests/Functional/Fit/Minimizer/MinimizerTest.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerTest.h"
-#include "FunctionTestPlanFactory.h"
+#include "Tests/Functional/Fit/Minimizer/MinimizerTest.h"
+#include "Tests/Functional/Fit/Minimizer/FunctionTestPlanFactory.h"
 
 MinimizerTest::MinimizerTest(const std::string& minimizer_name, const std::string& algorithm_name,
                              const std::string& fit_plan_name)
diff --git a/Tests/Functional/Fit/Minimizer/MinimizerTest.h b/Tests/Functional/Fit/Minimizer/MinimizerTest.h
index be2d76fe399c1e4bfd49299afdd89280f83e7727..5d575e1e37149b38d4ede72588df34b320efa943 100644
--- a/Tests/Functional/Fit/Minimizer/MinimizerTest.h
+++ b/Tests/Functional/Fit/Minimizer/MinimizerTest.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERTEST_H
 #define MINIMIZERTEST_H
 
-#include "IMinimizerTest.h"
+#include "Tests/Functional/TestMachinery/IMinimizerTest.h"
 
 //! Collection of standalone tests for fitting library.
 
diff --git a/Tests/Functional/Fit/Minimizer/MinimizerTestCases.cpp b/Tests/Functional/Fit/Minimizer/MinimizerTestCases.cpp
index ccd6ad318755d46e0d7d352371011b04669701d2..dd4997b90c2a855569204bba32d38e3c41cd797b 100644
--- a/Tests/Functional/Fit/Minimizer/MinimizerTestCases.cpp
+++ b/Tests/Functional/Fit/Minimizer/MinimizerTestCases.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerTestCases.h"
+#include "Tests/Functional/Fit/Minimizer/MinimizerTestCases.h"
 
 MinuitTestV1::MinuitTestV1() : MinimizerTest("Minuit2", "Migrad", "RosenbrockPlan") {}
 
diff --git a/Tests/Functional/Fit/Minimizer/MinimizerTestCases.h b/Tests/Functional/Fit/Minimizer/MinimizerTestCases.h
index ec7af3160b95ace1c91494cdba442d054786d591..9c82c7f28a876f33f754b39c1b85b66c4a2d3619 100644
--- a/Tests/Functional/Fit/Minimizer/MinimizerTestCases.h
+++ b/Tests/Functional/Fit/Minimizer/MinimizerTestCases.h
@@ -17,7 +17,7 @@
 
 //! Collection of minimizer tests.
 
-#include "MinimizerTest.h"
+#include "Tests/Functional/Fit/Minimizer/MinimizerTest.h"
 
 class MinuitTestV1 : public MinimizerTest
 {
diff --git a/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.cpp b/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.cpp
index 04ea369d2062c718b3a7e68376fa638e02e0be3c..e9b6b27bf685cb17f95fc8d93bbb860cc7277853 100644
--- a/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.cpp
+++ b/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerTestFactory.h"
-#include "MinimizerTestCases.h"
+#include "Tests/Functional/Fit/Minimizer/MinimizerTestFactory.h"
+#include "Tests/Functional/Fit/Minimizer/MinimizerTestCases.h"
 
 MinimizerTestFactory::MinimizerTestFactory()
 {
diff --git a/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.h b/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.h
index ed31cfcd689a82d1fc3ef374078b324915277c21..00b268f9cedab8502a985de8787c5a448243fd12 100644
--- a/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.h
+++ b/Tests/Functional/Fit/Minimizer/MinimizerTestFactory.h
@@ -15,7 +15,7 @@
 #ifndef MINIMIZERTESTFACTORY_H
 #define MINIMIZERTESTFACTORY_H
 
-#include "FunctionalTestFactory.h"
+#include "Tests/Functional/TestMachinery/FunctionalTestFactory.h"
 
 //! Factory to generate standalone fit tests.
 
diff --git a/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp b/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp
index 02d4d979e7d7f2aad95b7a4cc2f28ece6dc5866d..07bbad04140094fcb64f332a4a1d9ba63dd86110 100644
--- a/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp
+++ b/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "ResidualTestPlan.h"
-#include "FixedBinAxis.h"
-#include "Minimizer.h"
-#include "Parameters.h"
+#include "Tests/Functional/Fit/Minimizer/ResidualTestPlan.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Fit/Kernel/Minimizer.h"
+#include "Fit/Kernel/Parameters.h"
 #include <iostream>
 #include <sstream>
 
diff --git a/Tests/Functional/Fit/Minimizer/ResidualTestPlan.h b/Tests/Functional/Fit/Minimizer/ResidualTestPlan.h
index 3224302e080a523eeda2f57d251d95ad4b412b17..094e2f35335abf5bffb4079e0a5e71f38ee80216 100644
--- a/Tests/Functional/Fit/Minimizer/ResidualTestPlan.h
+++ b/Tests/Functional/Fit/Minimizer/ResidualTestPlan.h
@@ -15,8 +15,8 @@
 #ifndef RESIDUALTESTPLAN_H
 #define RESIDUALTESTPLAN_H
 
-#include "KernelTypes.h"
-#include "MinimizerTestPlan.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
 
 class ResidualTestPlan : public MinimizerTestPlan
 {
diff --git a/Tests/Functional/Fit/Minimizer/ScalarTestPlan.cpp b/Tests/Functional/Fit/Minimizer/ScalarTestPlan.cpp
index f204a99f8b891ca0c66c61bb3950008e8084ac72..a56d590011ddbbbfec323289c9dc887297480f4d 100644
--- a/Tests/Functional/Fit/Minimizer/ScalarTestPlan.cpp
+++ b/Tests/Functional/Fit/Minimizer/ScalarTestPlan.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "ScalarTestPlan.h"
-#include "Minimizer.h"
+#include "Tests/Functional/Fit/Minimizer/ScalarTestPlan.h"
+#include "Fit/Kernel/Minimizer.h"
 #include <cmath>
 #include <iostream>
 #include <sstream>
diff --git a/Tests/Functional/Fit/Minimizer/ScalarTestPlan.h b/Tests/Functional/Fit/Minimizer/ScalarTestPlan.h
index a16f3b000071245521118f95080fd9bcf633a56d..653f7c88f97fadc95aeefb52bc51afb910f301c1 100644
--- a/Tests/Functional/Fit/Minimizer/ScalarTestPlan.h
+++ b/Tests/Functional/Fit/Minimizer/ScalarTestPlan.h
@@ -15,8 +15,8 @@
 #ifndef SCALARTESTPLAN_H
 #define SCALARTESTPLAN_H
 
-#include "KernelTypes.h"
-#include "MinimizerTestPlan.h"
+#include "Fit/Kernel/KernelTypes.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
 
 //! Testing logic for Minimizer and scalar-type objective functions.
 
diff --git a/Tests/Functional/Fit/Minimizer/main.cpp b/Tests/Functional/Fit/Minimizer/main.cpp
index 5d0f14096423208563c82154a40bfc4e24ea5923..757d8d3ecd200e1c446872bdeb6814805b47f40f 100644
--- a/Tests/Functional/Fit/Minimizer/main.cpp
+++ b/Tests/Functional/Fit/Minimizer/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerTestFactory.h"
-#include "TestService.h"
+#include "Tests/Functional/Fit/Minimizer/MinimizerTestFactory.h"
+#include "Tests/Functional/TestMachinery/TestService.h"
 
 //! Runs functional tests.
 
diff --git a/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.cpp b/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.cpp
index 4dba38032c00c02df800b3be641c59aec120fff6..8d8c091c2678502e1e542ca1c5eb1bbc5e4cc31c 100644
--- a/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.cpp
+++ b/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "CsvImportAssistantPerformanceTest.h"
-#include "ArrayUtils.h"
-#include "CsvImportAssistant.h"
-#include "OutputDataReadFactory.h"
-#include "OutputDataWriteFactory.h"
+#include "Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h"
+#include "Core/InputOutput/OutputDataReadFactory.h"
+#include "Core/InputOutput/OutputDataWriteFactory.h"
 #include <ctime>
 #include <iostream>
 
diff --git a/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.h b/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.h
index 9b43b59d8c13cef622b653afec301e4b47e9c5ec..8f8ce2fdc8b86f719bb53470274205931bc86dde 100644
--- a/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.h
+++ b/Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.h
@@ -15,8 +15,8 @@
 #ifndef CSVIMPORTASSISTANTPERFORMANCETEST_H
 #define CSVIMPORTASSISTANTPERFORMANCETEST_H
 
-#include "IFunctionalTest.h"
-#include "SpecularDataItem.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
 #include <QString>
 #include <memory>
 
diff --git a/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.cpp b/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.cpp
index 63cea1e41f4593a89d0d9f0918d467e66a6010fc..2ba1f537954105e420a64d45810d47c3354e9caa 100644
--- a/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.cpp
+++ b/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.cpp
@@ -12,27 +12,27 @@
 //
 // ************************************************************************** //
 
-#include "GUIPerformanceTest.h"
-#include "ApplicationModels.h"
-#include "Benchmark.h"
-#include "DetectorItems.h"
-#include "DocumentModel.h"
-#include "DomainSimulationBuilder.h"
-#include "FitParameterHelper.h"
-#include "GISASSimulation.h"
-#include "GUIHelpers.h"
-#include "GUIObjectBuilder.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataItem.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "ModelPath.h"
-#include "MultiLayer.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTreeUtils.h"
-#include "SampleBuilderFactory.h"
-#include "SampleModel.h"
+#include "Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "Tests/Functional/TestMachinery/Benchmark.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/DomainSimulationBuilder.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/ParameterTreeUtils.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "GUI/coregui/Models/SampleModel.h"
 #include <QCoreApplication>
 #include <QDebug>
 #include <QElapsedTimer>
diff --git a/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.h b/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.h
index 410f746db95088485cede11949e0fbaa6444873c..4026e9e0aeb7a32c1fa4ea75fc5de40dccab1f69 100644
--- a/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.h
+++ b/Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.h
@@ -15,7 +15,7 @@
 #ifndef GUIPERFORMANCETEST_H
 #define GUIPERFORMANCETEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <QString>
 #include <memory>
 
diff --git a/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.cpp b/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.cpp
index 5b343eab521ccffcc9ce7fa69bdb81f3c7d449b1..1fb75048da1bd9306827cd794fd4c36041041cbf 100644
--- a/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.cpp
+++ b/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.cpp
@@ -12,25 +12,25 @@
 //
 // ************************************************************************** //
 
-#include "GUISaveLoadProject.h"
-#include "ApplicationModels.h"
+#include "Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
 #include "BATesting.h"
-#include "DetectorItems.h"
-#include "DocumentModel.h"
-#include "FileSystemUtils.h"
-#include "GUIHelpers.h"
-#include "GUIObjectBuilder.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "MessageService.h"
-#include "MultiLayer.h"
-#include "ProjectUtils.h"
-#include "SampleBuilderFactory.h"
-#include "SampleModel.h"
-#include "SimulationOptionsItem.h"
-#include "projectdocument.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
 #include <QCoreApplication>
 #include <QElapsedTimer>
 #include <QXmlStreamWriter>
diff --git a/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.h b/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.h
index 98af7cb93f6a1a8c7b5f97541b85b643115463c0..f27730341d9f33160252799af8260744b0192ac9 100644
--- a/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.h
+++ b/Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.h
@@ -15,7 +15,7 @@
 #ifndef GUISAVELOADPROJECT_H
 #define GUISAVELOADPROJECT_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <QMap>
 #include <QString>
 #include <QVector>
diff --git a/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.cpp b/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.cpp
index c51724742ce7766ab9c86b3168fe725c1a001723..1eeddb1142b8c8e4a428c0ec88b7c318f969a2d4 100644
--- a/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.cpp
+++ b/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.cpp
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "GUISpecialTestFactory.h"
-#include "CsvImportAssistantPerformanceTest.h"
-#include "GUIPerformanceTest.h"
-#include "GUISaveLoadProject.h"
-#include "TranslationCases.h"
+#include "Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.h"
+#include "Tests/Functional/GUI/GUISpecial/CsvImportAssistantPerformanceTest.h"
+#include "Tests/Functional/GUI/GUISpecial/GUIPerformanceTest.h"
+#include "Tests/Functional/GUI/GUISpecial/GUISaveLoadProject.h"
+#include "Tests/Functional/GUI/GUISpecial/TranslationCases.h"
 
 GUISpecialTestFactory::GUISpecialTestFactory()
 {
diff --git a/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.h b/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.h
index f3fbda6e9b5bbb70dbfdb0a0827750e874daba99..bf253f06157c60c8e8b37262a376f4dde884cc8f 100644
--- a/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.h
+++ b/Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.h
@@ -15,7 +15,7 @@
 #ifndef GUISPECIALTESTFACTORY_H
 #define GUISPECIALTESTFACTORY_H
 
-#include "FunctionalTestFactory.h"
+#include "Tests/Functional/TestMachinery/FunctionalTestFactory.h"
 
 //! @class GUISpecialTestFactory
 //! @brief Collection of special tests for GUI library.
diff --git a/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp b/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp
index c611001af4cc321f6bd419067f1058b29b474ef0..1c72f32409361ff0762c9b7d9e19fef224b66fa5 100644
--- a/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp
+++ b/Tests/Functional/GUI/GUISpecial/GUITranslationTest.cpp
@@ -12,31 +12,31 @@
 //
 // ************************************************************************** //
 
-#include "GUITranslationTest.h"
-#include "ApplicationModels.h"
-#include "BeamItems.h"
-#include "DocumentModel.h"
-#include "FitParameterHelper.h"
-#include "GISASSimulation.h"
-#include "GUIHelpers.h"
-#include "GUIObjectBuilder.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "MaterialItem.h"
-#include "ModelPath.h"
-#include "MultiLayer.h"
-#include "MultiLayerItem.h"
-#include "ParameterPool.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTreeUtils.h"
-#include "RectangularDetectorItem.h"
-#include "SampleBuilderFactory.h"
-#include "SampleModel.h"
-#include "SimulationFactory.h"
-#include "SphericalDetectorItem.h"
-#include "StringUtils.h"
+#include "Tests/Functional/GUI/GUISpecial/GUITranslationTest.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/FitParameterHelper.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/ParameterTreeUtils.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Core/StandardSamples/SimulationFactory.h"
+#include "GUI/coregui/Models/SphericalDetectorItem.h"
+#include "Fit/Tools/StringUtils.h"
 #include <QStack>
 
 namespace
diff --git a/Tests/Functional/GUI/GUISpecial/GUITranslationTest.h b/Tests/Functional/GUI/GUISpecial/GUITranslationTest.h
index 212962468e34a96a965250d27061fabdc7596a20..33a89a53a1c9cdde9ea0c36db4caf6815c6b5a78 100644
--- a/Tests/Functional/GUI/GUISpecial/GUITranslationTest.h
+++ b/Tests/Functional/GUI/GUISpecial/GUITranslationTest.h
@@ -15,7 +15,7 @@
 #ifndef GUITRANSLATIONTEST_H
 #define GUITRANSLATIONTEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <map>
 #include <memory>
 #include <string>
diff --git a/Tests/Functional/GUI/GUISpecial/TranslationCases.cpp b/Tests/Functional/GUI/GUISpecial/TranslationCases.cpp
index 4dea4e6245685016e68ef796a1e90aa0ec3d2e33..567df7530b1b5444595343d4642c38a0210ae333 100644
--- a/Tests/Functional/GUI/GUISpecial/TranslationCases.cpp
+++ b/Tests/Functional/GUI/GUISpecial/TranslationCases.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "TranslationCases.h"
+#include "Tests/Functional/GUI/GUISpecial/TranslationCases.h"
 
 BasicTranslationTest::BasicTranslationTest()
     : GUITranslationTest("BasicGISAS", "CylindersAndPrismsBuilder")
diff --git a/Tests/Functional/GUI/GUISpecial/TranslationCases.h b/Tests/Functional/GUI/GUISpecial/TranslationCases.h
index c571e9e7c7e9bbfd84094f050e2515c047f1a2b8..939150989299c5747879a3eaab7b41b93a040509 100644
--- a/Tests/Functional/GUI/GUISpecial/TranslationCases.h
+++ b/Tests/Functional/GUI/GUISpecial/TranslationCases.h
@@ -15,7 +15,7 @@
 #ifndef TRANSLATIONCASES_H
 #define TRANSLATIONCASES_H
 
-#include "GUITranslationTest.h"
+#include "Tests/Functional/GUI/GUISpecial/GUITranslationTest.h"
 
 //! Collection of classes for various translation tests.
 
diff --git a/Tests/Functional/GUI/GUISpecial/main.cpp b/Tests/Functional/GUI/GUISpecial/main.cpp
index 4773a8b0fa9b6a3ca3265bd14e92e2da02e08b0b..8fabc571a59882bb10673ad9b910824397c42e46 100644
--- a/Tests/Functional/GUI/GUISpecial/main.cpp
+++ b/Tests/Functional/GUI/GUISpecial/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "GUISpecialTestFactory.h"
-#include "TestService.h"
+#include "Tests/Functional/GUI/GUISpecial/GUISpecialTestFactory.h"
+#include "Tests/Functional/TestMachinery/TestService.h"
 #include <QCoreApplication>
 
 //! Runs PyEmbedded functional test.
diff --git a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp
index 4a080c995c75216e6443c1126e02c82b3b2f4591..3adaa6228d739f621958457fcd7c95c6be61b302 100644
--- a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp
+++ b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "GUIStandardTest.h"
-#include "DocumentModel.h"
-#include "DomainSimulationBuilder.h"
-#include "GUIObjectBuilder.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "MaterialModel.h"
-#include "SampleModel.h"
-#include "Simulation.h"
-#include "TestUtils.h"
+#include "Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/DomainSimulationBuilder.h"
+#include "GUI/coregui/Models/GUIObjectBuilder.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Core/Simulation/Simulation.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 
 namespace
 {
diff --git a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h
index 58513d03b5570621345428143462d8879d0f1f99..0bae20f591e6de17b1b48c1c0475fbc55513cfff 100644
--- a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h
+++ b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h
@@ -15,7 +15,7 @@
 #ifndef GUISTANDARDTEST_H
 #define GUISTANDARDTEST_H
 
-#include "IStandardTest.h"
+#include "Tests/Functional/TestMachinery/IStandardTest.h"
 
 //! A functional test of the BornAgain GUI.
 //! Performs a given standard simulation directly, and through domain->GUI->domain,
diff --git a/Tests/Functional/GUI/GUIStandardTest/main.cpp b/Tests/Functional/GUI/GUIStandardTest/main.cpp
index 5bbb682f95dae0a0127a6be09489f98fca56f9f9..ce73ee7e352bc0cc6ee5a5ed61a392e069863241 100644
--- a/Tests/Functional/GUI/GUIStandardTest/main.cpp
+++ b/Tests/Functional/GUI/GUIStandardTest/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "GUIStandardTest.h"
-#include "StandardTestService.h"
+#include "Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h"
+#include "Tests/Functional/TestMachinery/StandardTestService.h"
 #include <iostream>
 
 //! Runs GUIStandardTest on a standard simulation indicated by argv[1].
diff --git a/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.cpp b/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.cpp
index 68f0565f57a8391bab833506df22a6e77d9d239f..0ac6c90b619e3f2f90adcbdae92b3f2dcc7bd801 100644
--- a/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.cpp
+++ b/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PyEmbeddedTestFactory.h"
-#include "TestCases.h"
+#include "Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.h"
+#include "Tests/Functional/Python/PyEmbedded/TestCases.h"
 
 PyEmbeddedTestFactory::PyEmbeddedTestFactory()
 {
diff --git a/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.h b/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.h
index 600f738c20d3f27237d6b68187038cdb3d453223..cb0e044f8ac07a672ae7d4fccf5e89da943b26e7 100644
--- a/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.h
+++ b/Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.h
@@ -15,7 +15,7 @@
 #ifndef PYEMBEDDEDTESTFACTORY_H
 #define PYEMBEDDEDTESTFACTORY_H
 
-#include "FunctionalTestFactory.h"
+#include "Tests/Functional/TestMachinery/FunctionalTestFactory.h"
 
 //! @class PyEmbeddedTestFactory
 //! @brief Collection of tests for embedded Python.
diff --git a/Tests/Functional/Python/PyEmbedded/TestCases.cpp b/Tests/Functional/Python/PyEmbedded/TestCases.cpp
index 33e9f76b26bc0eb3f6e19a3aac88541e4aea9336..c8d4aa62e7ed849594b0caed824eda67511b2f6a 100644
--- a/Tests/Functional/Python/PyEmbedded/TestCases.cpp
+++ b/Tests/Functional/Python/PyEmbedded/TestCases.cpp
@@ -12,18 +12,18 @@
 //
 // ************************************************************************** //
 
-#include "TestCases.h"
+#include "Tests/Functional/Python/PyEmbedded/TestCases.h"
 #include "BABuild.h"
 #include "BAVersion.h"
-#include "BornAgainNamespace.h"
-#include "ExportToPython.h"
-#include "MultiLayer.h"
-#include "PyEmbeddedUtils.h"
-#include "PyImport.h"
-#include "PythonCore.h"
-#include "PythonFormatting.h"
-#include "SampleBuilderFactory.h"
-#include "SysUtils.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Export/ExportToPython.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Tools/PyEmbeddedUtils.h"
+#include "Core/Tools/PyImport.h"
+#include "Core/Tools/PythonCore.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/Tools/SysUtils.h"
 #include <iostream>
 #include <sstream>
 
diff --git a/Tests/Functional/Python/PyEmbedded/TestCases.h b/Tests/Functional/Python/PyEmbedded/TestCases.h
index 8d8f23fb4f4fda784659dc9bcaf9a10802cacda3..94019410e16bc52f07489ac530a13c7aaa25929c 100644
--- a/Tests/Functional/Python/PyEmbedded/TestCases.h
+++ b/Tests/Functional/Python/PyEmbedded/TestCases.h
@@ -15,7 +15,7 @@
 #ifndef TESTCASES_H
 #define TESTCASES_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Checks system path for embedded enterpreter.
 
diff --git a/Tests/Functional/Python/PyEmbedded/main.cpp b/Tests/Functional/Python/PyEmbedded/main.cpp
index bad382fc211a2c6508bdb3c4df063f70839798ac..03b3551d85808e613bedc591854cf97c9de9220c 100644
--- a/Tests/Functional/Python/PyEmbedded/main.cpp
+++ b/Tests/Functional/Python/PyEmbedded/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PyEmbeddedTestFactory.h"
-#include "TestService.h"
+#include "Tests/Functional/Python/PyEmbedded/PyEmbeddedTestFactory.h"
+#include "Tests/Functional/TestMachinery/TestService.h"
 
 //! Runs PyEmbedded functional test.
 int main(int argc, char** argv)
diff --git a/Tests/Functional/Python/PyStandard/PyStandardTest.cpp b/Tests/Functional/Python/PyStandard/PyStandardTest.cpp
index 01689bc3c3ff3cd2e3530cf3316333f2b252206d..945952db71313b6c3e015de97dc575e4a33ce662 100644
--- a/Tests/Functional/Python/PyStandard/PyStandardTest.cpp
+++ b/Tests/Functional/Python/PyStandard/PyStandardTest.cpp
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "PyStandardTest.h"
+#include "Tests/Functional/Python/PyStandard/PyStandardTest.h"
 #include "BATesting.h"
-#include "ExportToPython.h"
-#include "FileSystemUtils.h"
-#include "IntensityDataIOFactory.h"
-#include "Simulation.h"
-#include "TestUtils.h"
+#include "Core/Export/ExportToPython.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Simulation/Simulation.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 #include <fstream>
 #include <iostream>
 
diff --git a/Tests/Functional/Python/PyStandard/PyStandardTest.h b/Tests/Functional/Python/PyStandard/PyStandardTest.h
index a56295c25b3b3674d73a90aa021c9a27c3f5c117..62c0ffebae5a42488b0eca28738773fafe8f61fb 100644
--- a/Tests/Functional/Python/PyStandard/PyStandardTest.h
+++ b/Tests/Functional/Python/PyStandard/PyStandardTest.h
@@ -15,7 +15,7 @@
 #ifndef PYSTANDARDTEST_H
 #define PYSTANDARDTEST_H
 
-#include "IStandardTest.h"
+#include "Tests/Functional/TestMachinery/IStandardTest.h"
 
 //! Tests Python scripts generation from Core objects.
 //! Performs core standard simulation and checks it against simulation via generated Python script.
diff --git a/Tests/Functional/Python/PyStandard/main.cpp b/Tests/Functional/Python/PyStandard/main.cpp
index ce708675886588c6bd77cca79926aa10721543a1..2758a0020ab8e205fe225cc9cbb906c4b1b729e5 100644
--- a/Tests/Functional/Python/PyStandard/main.cpp
+++ b/Tests/Functional/Python/PyStandard/main.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "PyStandardTest.h"
-#include "StandardTestService.h"
+#include "Tests/Functional/Python/PyStandard/PyStandardTest.h"
+#include "Tests/Functional/TestMachinery/StandardTestService.h"
 
 //! Runs PyStandardTest on a standard simulation indicated by argv[1].
 
diff --git a/Tests/Functional/TestMachinery/Benchmark.cpp b/Tests/Functional/TestMachinery/Benchmark.cpp
index 8e5e4c541e460edc84fad649911a54872844862e..b829470142c79bb3c3688ed5c4a9ec60db50ddbb 100644
--- a/Tests/Functional/TestMachinery/Benchmark.cpp
+++ b/Tests/Functional/TestMachinery/Benchmark.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Benchmark.h"
+#include "Tests/Functional/TestMachinery/Benchmark.h"
 #include <iomanip>
 #include <iostream>
 #include <sstream>
diff --git a/Tests/Functional/TestMachinery/Benchmark.h b/Tests/Functional/TestMachinery/Benchmark.h
index cefe8b2c84822dd598a5098954d3baf34c6efcfe..9c69bbc8ad309f8257a0caadc8241c29044401d5 100644
--- a/Tests/Functional/TestMachinery/Benchmark.h
+++ b/Tests/Functional/TestMachinery/Benchmark.h
@@ -15,9 +15,9 @@
 #ifndef BENCHMARK_H
 #define BENCHMARK_H
 
-#include "OrderedMap.h"
-#include "WallclockTimer.h"
-#include "WinDllMacros.h"
+#include "Core/Tools/OrderedMap.h"
+#include "Fit/Tools/WallclockTimer.h"
+#include "Wrap/WinDllMacros.h"
 #include <functional>
 #include <map>
 #include <string>
diff --git a/Tests/Functional/TestMachinery/FunctionalTestFactory.cpp b/Tests/Functional/TestMachinery/FunctionalTestFactory.cpp
index ea1bdfd170bab734f737f9181d75936f4d7cf5f6..952ec384e4803433e13b0eefe3ee64d9f449b07c 100644
--- a/Tests/Functional/TestMachinery/FunctionalTestFactory.cpp
+++ b/Tests/Functional/TestMachinery/FunctionalTestFactory.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "FunctionalTestFactory.h"
+#include "Tests/Functional/TestMachinery/FunctionalTestFactory.h"
 
 std::unique_ptr<IFunctionalTest> FunctionalTestFactory::createTest(std::string& test_name)
 {
diff --git a/Tests/Functional/TestMachinery/FunctionalTestFactory.h b/Tests/Functional/TestMachinery/FunctionalTestFactory.h
index 82c7e8895357e7169c1785a5d34696135c602c24..0df1e5f1d386abc9269bc7b102d6a2156bf223ce 100644
--- a/Tests/Functional/TestMachinery/FunctionalTestFactory.h
+++ b/Tests/Functional/TestMachinery/FunctionalTestFactory.h
@@ -15,8 +15,8 @@
 #ifndef FUNCTIONALTESTFACTORY_H
 #define FUNCTIONALTESTFACTORY_H
 
-#include "IFactory.h"
-#include "IFunctionalTest.h"
+#include "Core/StandardSamples/IFactory.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 
 //! Simple factory to hold packs of functional tests.
 
diff --git a/Tests/Functional/TestMachinery/IFunctionalTest.cpp b/Tests/Functional/TestMachinery/IFunctionalTest.cpp
index af360d45c283ebdaad8e7bdaeebd4184a3bfddda..54ea2522ed867c2b4a828bf8c3c539afc09bd506 100644
--- a/Tests/Functional/TestMachinery/IFunctionalTest.cpp
+++ b/Tests/Functional/TestMachinery/IFunctionalTest.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <iostream>
 
 IFunctionalTest::~IFunctionalTest() = default;
diff --git a/Tests/Functional/TestMachinery/IFunctionalTest.h b/Tests/Functional/TestMachinery/IFunctionalTest.h
index 5c80a5421465d7055857a785fd4f160e22cd2950..abb2472b2922e41c8d4cf11210d00da7e1f14591 100644
--- a/Tests/Functional/TestMachinery/IFunctionalTest.h
+++ b/Tests/Functional/TestMachinery/IFunctionalTest.h
@@ -15,7 +15,7 @@
 #ifndef IFUNCTIONALTEST_H
 #define IFUNCTIONALTEST_H
 
-#include "INamed.h"
+#include "Core/Basics/INamed.h"
 #include <map>
 
 //! Base class for all functional tests.
diff --git a/Tests/Functional/TestMachinery/IMinimizerTest.cpp b/Tests/Functional/TestMachinery/IMinimizerTest.cpp
index fbefa3c3407098ed1db284aec5961ef6a3ebad3b..c002e98e8d3c0256e5ff902bd11de506ab9df909 100644
--- a/Tests/Functional/TestMachinery/IMinimizerTest.cpp
+++ b/Tests/Functional/TestMachinery/IMinimizerTest.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "IMinimizerTest.h"
-#include "Minimizer.h"
-#include "MinimizerTestPlan.h"
-#include "Parameters.h"
+#include "Tests/Functional/TestMachinery/IMinimizerTest.h"
+#include "Fit/Kernel/Minimizer.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
+#include "Fit/Kernel/Parameters.h"
 #include <iostream>
 
 using namespace Fit;
diff --git a/Tests/Functional/TestMachinery/IMinimizerTest.h b/Tests/Functional/TestMachinery/IMinimizerTest.h
index be586dcb38e26c7714a6a501acbd547af5c0997e..999e4f032eedc12406115f3ced475e8753bbd529 100644
--- a/Tests/Functional/TestMachinery/IMinimizerTest.h
+++ b/Tests/Functional/TestMachinery/IMinimizerTest.h
@@ -15,7 +15,7 @@
 #ifndef IMINIMIZERTEST_H
 #define IMINIMIZERTEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <memory>
 #include <string>
 
diff --git a/Tests/Functional/TestMachinery/IStandardTest.cpp b/Tests/Functional/TestMachinery/IStandardTest.cpp
index 14517605d71a93e7863f47238cba010a4736d6e5..6e89b4111c9694c0506647857fd288c214de3c11 100644
--- a/Tests/Functional/TestMachinery/IStandardTest.cpp
+++ b/Tests/Functional/TestMachinery/IStandardTest.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "IStandardTest.h"
-#include "GISASSimulation.h"
+#include "Tests/Functional/TestMachinery/IStandardTest.h"
+#include "Core/Simulation/GISASSimulation.h"
 
 IStandardTest::IStandardTest(const std::string& name, const std::string& description,
                              const Simulation& simulation, double threshold)
diff --git a/Tests/Functional/TestMachinery/IStandardTest.h b/Tests/Functional/TestMachinery/IStandardTest.h
index c0069b2d13b8ebea290107afe9c44b152f70e4ee..0f80fb2df7da87e6960f120fd6bba562d92d063f 100644
--- a/Tests/Functional/TestMachinery/IStandardTest.h
+++ b/Tests/Functional/TestMachinery/IStandardTest.h
@@ -15,7 +15,7 @@
 #ifndef ISTANDARDTEST_H
 #define ISTANDARDTEST_H
 
-#include "IFunctionalTest.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
 #include <memory>
 #include <string>
 
diff --git a/Tests/Functional/TestMachinery/ITestService.cpp b/Tests/Functional/TestMachinery/ITestService.cpp
index fb64b4b8385849402745e49d5556342c20db5e3b..6d7422f57e3f079bf6b83f59f0f9ca8dd724a810 100644
--- a/Tests/Functional/TestMachinery/ITestService.cpp
+++ b/Tests/Functional/TestMachinery/ITestService.cpp
@@ -12,6 +12,6 @@
 //
 // ************************************************************************** //
 
-#include "ITestService.h"
+#include "Tests/Functional/TestMachinery/ITestService.h"
 
 ITestService::~ITestService() = default;
diff --git a/Tests/Functional/TestMachinery/ITestService.h b/Tests/Functional/TestMachinery/ITestService.h
index 42e2c23b5cb07dde60343c244a3ecdf3f0cdd1b2..751c3b5e265a3786b6a437056280e7ee67e94375 100644
--- a/Tests/Functional/TestMachinery/ITestService.h
+++ b/Tests/Functional/TestMachinery/ITestService.h
@@ -15,7 +15,7 @@
 #ifndef ITESTSERVICE_H
 #define ITESTSERVICE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 
 //! @class ITestService
 //! @ingroup standard_samples
diff --git a/Tests/Functional/TestMachinery/MinimizerTestPlan.cpp b/Tests/Functional/TestMachinery/MinimizerTestPlan.cpp
index 0c0ee0c89ddf39c42862dc0bc86162159d2d6b68..3f05e3aab62f7087596bf3558b69cf3f5a4d7d88 100644
--- a/Tests/Functional/TestMachinery/MinimizerTestPlan.cpp
+++ b/Tests/Functional/TestMachinery/MinimizerTestPlan.cpp
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "MinimizerTestPlan.h"
-#include "Numeric.h"
-#include "Parameters.h"
+#include "Tests/Functional/TestMachinery/MinimizerTestPlan.h"
+#include "Core/Tools/Numeric.h"
+#include "Fit/Kernel/Parameters.h"
 #include <cmath>
 #include <iostream>
 #include <sstream>
diff --git a/Tests/Functional/TestMachinery/MinimizerTestPlan.h b/Tests/Functional/TestMachinery/MinimizerTestPlan.h
index 84667b0466fc53e45db66aeadd5d975f7911bda2..33e37fe0b791243f27356bb3854827e34c47beea 100644
--- a/Tests/Functional/TestMachinery/MinimizerTestPlan.h
+++ b/Tests/Functional/TestMachinery/MinimizerTestPlan.h
@@ -15,8 +15,8 @@
 #ifndef MINIMIZERTESTPLAN_H
 #define MINIMIZERTESTPLAN_H
 
-#include "ParameterPlan.h"
-#include "WinDllMacros.h"
+#include "Tests/Functional/TestMachinery/ParameterPlan.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 namespace Fit
diff --git a/Tests/Functional/TestMachinery/ObjectiveTestFunctions.cpp b/Tests/Functional/TestMachinery/ObjectiveTestFunctions.cpp
index be93d5643a16fc48cc35de5feb870c98c79bb3dd..18a1de4016076d7fabc6b187280cc716490a4c17 100644
--- a/Tests/Functional/TestMachinery/ObjectiveTestFunctions.cpp
+++ b/Tests/Functional/TestMachinery/ObjectiveTestFunctions.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "ObjectiveTestFunctions.h"
+#include "Tests/Functional/TestMachinery/ObjectiveTestFunctions.h"
 #include <cmath>
 #include <iostream>
 #include <stdexcept>
diff --git a/Tests/Functional/TestMachinery/ObjectiveTestFunctions.h b/Tests/Functional/TestMachinery/ObjectiveTestFunctions.h
index 4e372f8ff05083220f53bd81db69626b6e25c28f..336863181f8efb660781718afc76dfe4f5675c4b 100644
--- a/Tests/Functional/TestMachinery/ObjectiveTestFunctions.h
+++ b/Tests/Functional/TestMachinery/ObjectiveTestFunctions.h
@@ -15,7 +15,7 @@
 #ifndef OBJECTIVETESTFUNCTIONS_G
 #define OBJECTIVETESTFUNCTIONS_G
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <vector>
 
 //! @class StandaloneFitTest
diff --git a/Tests/Functional/TestMachinery/ParameterPlan.h b/Tests/Functional/TestMachinery/ParameterPlan.h
index 5833afd5b74092d4058f8cd60459e366618c31b5..b885e27e6633f0469bcda2e4020cdb20738b30f7 100644
--- a/Tests/Functional/TestMachinery/ParameterPlan.h
+++ b/Tests/Functional/TestMachinery/ParameterPlan.h
@@ -15,8 +15,8 @@
 #ifndef PARAMETERPLAN_H
 #define PARAMETERPLAN_H
 
-#include "Parameter.h"
-#include "WinDllMacros.h"
+#include "Fit/Kernel/Parameter.h"
+#include "Wrap/WinDllMacros.h"
 
 //! Defines initial settings of single fit parameter and the final value which has to be found
 //! in the course of the fit.
diff --git a/Tests/Functional/TestMachinery/StandardTestCatalogue.cpp b/Tests/Functional/TestMachinery/StandardTestCatalogue.cpp
index af961ad4081d6a5ef235fd11cd37fbbc52c225ad..81281f579686e6de3b9ba0d59adbad9e4dc29654 100644
--- a/Tests/Functional/TestMachinery/StandardTestCatalogue.cpp
+++ b/Tests/Functional/TestMachinery/StandardTestCatalogue.cpp
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "StandardTestCatalogue.h"
-#include "StringUtils.h"
+#include "Tests/Functional/TestMachinery/StandardTestCatalogue.h"
+#include "Fit/Tools/StringUtils.h"
 #include <iostream>
 
 StandardTestCatalogue::StandardTestCatalogue()
diff --git a/Tests/Functional/TestMachinery/StandardTestCatalogue.h b/Tests/Functional/TestMachinery/StandardTestCatalogue.h
index abce0eec9e7380093b0a3dbebe0d838515a0e282..5d50412a7e253f6d5f1c2a7e644bc181566bc8f7 100644
--- a/Tests/Functional/TestMachinery/StandardTestCatalogue.h
+++ b/Tests/Functional/TestMachinery/StandardTestCatalogue.h
@@ -15,8 +15,8 @@
 #ifndef STANDARDTESTCATALOGUE_H
 #define STANDARDTESTCATALOGUE_H
 
-#include "StandardTestInfo.h"
-#include "WinDllMacros.h"
+#include "Tests/Functional/TestMachinery/StandardTestInfo.h"
+#include "Wrap/WinDllMacros.h"
 #include <map>
 
 //! @class StandardTestCatalogue
diff --git a/Tests/Functional/TestMachinery/StandardTestInfo.cpp b/Tests/Functional/TestMachinery/StandardTestInfo.cpp
index 61efb64fe9d37071380dd3dffe38ac5af901bdb0..0e7190958d7dac8578140bc0e30267cffc431128 100644
--- a/Tests/Functional/TestMachinery/StandardTestInfo.cpp
+++ b/Tests/Functional/TestMachinery/StandardTestInfo.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "StandardTestInfo.h"
+#include "Tests/Functional/TestMachinery/StandardTestInfo.h"
 #include <stdexcept>
 
 StandardTestInfo::StandardTestInfo() : m_threshold(0.0) {}
diff --git a/Tests/Functional/TestMachinery/StandardTestInfo.h b/Tests/Functional/TestMachinery/StandardTestInfo.h
index 71da8b89964e1f6d4c4e5bbda6df28dd57fa7022..d5fd54398919a6924ffd751254094601d9238da7 100644
--- a/Tests/Functional/TestMachinery/StandardTestInfo.h
+++ b/Tests/Functional/TestMachinery/StandardTestInfo.h
@@ -15,7 +15,7 @@
 #ifndef STANDARDTESTINFO_H
 #define STANDARDTESTINFO_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <string>
 #include <vector>
 
diff --git a/Tests/Functional/TestMachinery/StandardTestService.cpp b/Tests/Functional/TestMachinery/StandardTestService.cpp
index e610f23abd194f78ee2803c80edd2c4b03daade3..7776d9bde87dc53b8b5ca07dd7fc8ad401760146 100644
--- a/Tests/Functional/TestMachinery/StandardTestService.cpp
+++ b/Tests/Functional/TestMachinery/StandardTestService.cpp
@@ -12,16 +12,16 @@
 //
 // ************************************************************************** //
 
-#include "StandardTestService.h"
-#include "BornAgainNamespace.h"
-#include "IFunctionalTest.h"
-#include "IMultiLayerBuilder.h"
-#include "MultiLayer.h"
-#include "SampleBuilderFactory.h"
-#include "Simulation.h"
-#include "SimulationFactory.h"
-#include "StandardTestCatalogue.h"
-#include "TestUtils.h"
+#include "Tests/Functional/TestMachinery/StandardTestService.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Tests/Functional/TestMachinery/IFunctionalTest.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/StandardSamples/SimulationFactory.h"
+#include "Tests/Functional/TestMachinery/StandardTestCatalogue.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 #include <iostream>
 
 namespace
diff --git a/Tests/Functional/TestMachinery/StandardTestService.h b/Tests/Functional/TestMachinery/StandardTestService.h
index e661161b75d1046f2ad88279bcbe3c99e7e6494c..147b2a7b735938e6b1746a206d62b4f8f4913377 100644
--- a/Tests/Functional/TestMachinery/StandardTestService.h
+++ b/Tests/Functional/TestMachinery/StandardTestService.h
@@ -15,7 +15,7 @@
 #ifndef STANDARDTESTSERVICE_H
 #define STANDARDTESTSERVICE_H
 
-#include "WinDllMacros.h"
+#include "Wrap/WinDllMacros.h"
 #include <memory>
 #include <string>
 class IFunctionalTest;
diff --git a/Tests/Functional/TestMachinery/TestService.h b/Tests/Functional/TestMachinery/TestService.h
index c7edf5aef50c68f1b21477ce5645db07d7c82f91..7a3f972dda847599205731092d70e06d058cd417 100644
--- a/Tests/Functional/TestMachinery/TestService.h
+++ b/Tests/Functional/TestMachinery/TestService.h
@@ -15,7 +15,7 @@
 #ifndef TESTSERVICE_H
 #define TESTSERVICE_H
 
-#include "ITestService.h"
+#include "Tests/Functional/TestMachinery/ITestService.h"
 #include <boost/format.hpp>
 #include <iostream>
 #include <string>
diff --git a/Tests/Functional/TestMachinery/TestUtils.cpp b/Tests/Functional/TestMachinery/TestUtils.cpp
index 21a3dc3c3fd82c925e84d9b6c947063952b0d08d..dc7ef584e5e6172aea9559057d99d2ca402a04e4 100644
--- a/Tests/Functional/TestMachinery/TestUtils.cpp
+++ b/Tests/Functional/TestMachinery/TestUtils.cpp
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "TestUtils.h"
+#include "Tests/Functional/TestMachinery/TestUtils.h"
 #include "BABuild.h"
-#include "IntensityDataFunctions.h"
-#include "StandardTestCatalogue.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Tests/Functional/TestMachinery/StandardTestCatalogue.h"
 #include <cstdlib>
 #include <iostream>
 
diff --git a/Tests/Functional/TestMachinery/TestUtils.h b/Tests/Functional/TestMachinery/TestUtils.h
index 3b505727887d85b0514f01c365fd34a1bdae5dac..f1f899d7e6abd0996188f9781ec8e317225a6ed4 100644
--- a/Tests/Functional/TestMachinery/TestUtils.h
+++ b/Tests/Functional/TestMachinery/TestUtils.h
@@ -15,9 +15,9 @@
 #ifndef TESTUTILS_H
 #define TESTUTILS_H
 
-#include "OutputData.h"
-#include "StandardTestInfo.h"
-#include "WinDllMacros.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/Functional/TestMachinery/StandardTestInfo.h"
+#include "Wrap/WinDllMacros.h"
 
 namespace TestUtils
 {
diff --git a/Tests/UnitTests/Core/Axes/CVectorTest.cpp b/Tests/UnitTests/Core/Axes/CVectorTest.cpp
index 958a5f5ac15d40672eac580de5c8590e27532b83..4a5c70d6ffb89f3f993580b32ab8de1e1d731142 100644
--- a/Tests/UnitTests/Core/Axes/CVectorTest.cpp
+++ b/Tests/UnitTests/Core/Axes/CVectorTest.cpp
@@ -1,7 +1,7 @@
-#include "Complex.h"
-#include "EigenCore.h"
-#include "Vectors3D.h"
-#include "google_test.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/EigenCore.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class CVectorTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Axes/ConstKBinAxisTest.cpp b/Tests/UnitTests/Core/Axes/ConstKBinAxisTest.cpp
index 0712dabe62a7d7294c1584423ae525a403d181da..9aa571ea69460c78f26b15e541a12e9232cf5b84 100644
--- a/Tests/UnitTests/Core/Axes/ConstKBinAxisTest.cpp
+++ b/Tests/UnitTests/Core/Axes/ConstKBinAxisTest.cpp
@@ -1,7 +1,7 @@
-#include "ConstKBinAxis.h"
-#include "DataFormatUtils.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Binning/ConstKBinAxis.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <vector>
 
 class ConstKBinAxisTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Axes/CustomBinAxisTest.cpp b/Tests/UnitTests/Core/Axes/CustomBinAxisTest.cpp
index db1540cbfd0c3e806cb70af094b8570ac115f778..ecf6b058c159dcabdf4933105a4ddec66e660a20 100644
--- a/Tests/UnitTests/Core/Axes/CustomBinAxisTest.cpp
+++ b/Tests/UnitTests/Core/Axes/CustomBinAxisTest.cpp
@@ -1,7 +1,7 @@
-#include "CustomBinAxis.h"
-#include "DataFormatUtils.h"
-#include "MathConstants.h"
-#include "google_test.h"
+#include "Core/Binning/CustomBinAxis.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Basics/MathConstants.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <vector>
 
 class CusomBinAxisTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp b/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp
index 68b600e194826fec922b2240194a9def6b98e5d6..0317740293414ccba332ff50839d95b6d7b14e37 100644
--- a/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp
+++ b/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp
@@ -1,9 +1,9 @@
-#include "Beam.h"
-#include "FixedBinAxis.h"
-#include "MathConstants.h"
-#include "SimpleUnitConverters.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class DepthProbeConverterTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Axes/FixedBinAxisTest.cpp b/Tests/UnitTests/Core/Axes/FixedBinAxisTest.cpp
index d88d15315de71d28c5caf24ac783408b694a785b..fffd628bb350aed3801240e6e87d0779ea50fe71 100644
--- a/Tests/UnitTests/Core/Axes/FixedBinAxisTest.cpp
+++ b/Tests/UnitTests/Core/Axes/FixedBinAxisTest.cpp
@@ -1,7 +1,7 @@
-#include "FixedBinAxis.h"
-#include "DataFormatUtils.h"
-#include "Exceptions.h"
-#include "google_test.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Basics/Exceptions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 
 class FixedBinAxisTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Axes/Histogram1DTest.cpp b/Tests/UnitTests/Core/Axes/Histogram1DTest.cpp
index 2098acef596196d82d829d2088db386eaa57edb0..bc6a19b1539d9d40328530217a21adf63cd2e826 100644
--- a/Tests/UnitTests/Core/Axes/Histogram1DTest.cpp
+++ b/Tests/UnitTests/Core/Axes/Histogram1DTest.cpp
@@ -1,6 +1,6 @@
-#include "Histogram1D.h"
-#include "Exceptions.h"
-#include "google_test.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Basics/Exceptions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class Histogram1DTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Axes/Histogram2DTest.cpp b/Tests/UnitTests/Core/Axes/Histogram2DTest.cpp
index e9c6bfc8788ef722effa5726a94dd2b1d45273c5..a328432610931b1f93861e22e77155827c7128d6 100644
--- a/Tests/UnitTests/Core/Axes/Histogram2DTest.cpp
+++ b/Tests/UnitTests/Core/Axes/Histogram2DTest.cpp
@@ -1,6 +1,6 @@
-#include "Histogram2D.h"
-#include "Histogram1D.h"
-#include "google_test.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class Histogram2DTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Axes/KVectorTest.cpp b/Tests/UnitTests/Core/Axes/KVectorTest.cpp
index cf95854cae238b6ed3fec0f5f85e4d6b528f2396..fadd97febc90352d5e8ef19fc3317a56e9987dbe 100644
--- a/Tests/UnitTests/Core/Axes/KVectorTest.cpp
+++ b/Tests/UnitTests/Core/Axes/KVectorTest.cpp
@@ -1,6 +1,6 @@
-#include "Transform3D.h"
-#include "Vectors3D.h"
-#include "google_test.h"
+#include "Core/Vector/Transform3D.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class KVectorTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Axes/PointwiseAxisTest.cpp b/Tests/UnitTests/Core/Axes/PointwiseAxisTest.cpp
index fe6ceefa43acac6387d6fd4073b17754ba962d33..3b6866de30ebde3bdc31f5384f1682d2df7abfff 100644
--- a/Tests/UnitTests/Core/Axes/PointwiseAxisTest.cpp
+++ b/Tests/UnitTests/Core/Axes/PointwiseAxisTest.cpp
@@ -1,7 +1,7 @@
-#include "PointwiseAxis.h"
-#include "DataFormatUtils.h"
-#include "FixedBinAxis.h"
-#include "google_test.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 
 class PointwiseAxisTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp b/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp
index d8d7827d241d595bdac80b3b490e80fdf5c3a015..5b306be4bf86b0903906dacc9562494a19c936e4 100644
--- a/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp
+++ b/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp
@@ -1,13 +1,13 @@
-#include "UnitConverter1D.h"
-#include "Beam.h"
-#include "FixedBinAxis.h"
-#include "MathConstants.h"
-#include "OutputData.h"
-#include "PointwiseAxis.h"
-#include "QSpecScan.h"
-#include "Units.h"
-#include "VariableBinAxis.h"
-#include "google_test.h"
+#include "Core/Instrument/UnitConverter1D.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class UnitConverter1DTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Axes/VariableBinAxisTest.cpp b/Tests/UnitTests/Core/Axes/VariableBinAxisTest.cpp
index 512af661a19b5ecd55fa608176537b38d54c8b69..3d73abdb5acb60239b84ae0182b1afbafde8dfc8 100644
--- a/Tests/UnitTests/Core/Axes/VariableBinAxisTest.cpp
+++ b/Tests/UnitTests/Core/Axes/VariableBinAxisTest.cpp
@@ -1,7 +1,7 @@
-#include "VariableBinAxis.h"
-#include "DataFormatUtils.h"
-#include "Exceptions.h"
-#include "google_test.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Core/InputOutput/DataFormatUtils.h"
+#include "Core/Basics/Exceptions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class VariableBinAxisTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Basics/MinMaxValueTest.cpp b/Tests/UnitTests/Core/Basics/MinMaxValueTest.cpp
index 4cc4591e8d71e724666a51eba639aae1a7939d73..68486b50ff88ecc7aa0132c525fe9a52b744cdca 100644
--- a/Tests/UnitTests/Core/Basics/MinMaxValueTest.cpp
+++ b/Tests/UnitTests/Core/Basics/MinMaxValueTest.cpp
@@ -1,5 +1,5 @@
-#include "Algorithms.h"
-#include "google_test.h"
+#include "Core/Basics/Algorithms.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 
 class MinMaxValueTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/DataStructure/ArrayUtilsTest.cpp b/Tests/UnitTests/Core/DataStructure/ArrayUtilsTest.cpp
index d1dbbe76ef41761dc32e596ff7334914b9e0cc54..f28a946054ef50f79db8dcad3d280e77c72072b0 100644
--- a/Tests/UnitTests/Core/DataStructure/ArrayUtilsTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/ArrayUtilsTest.cpp
@@ -1,6 +1,6 @@
-#include "ArrayUtils.h"
-#include "IAxis.h"
-#include "google_test.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Binning/IAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <vector>
 
 class ArrayUtilsTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/DataStructure/IOStrategyTest.cpp b/Tests/UnitTests/Core/DataStructure/IOStrategyTest.cpp
index 66dbdbef277a18bcc6d40e77d3449fc6c30f000b..c8eb3da5080c81fa7d10c00045bacc4ca28a3599 100644
--- a/Tests/UnitTests/Core/DataStructure/IOStrategyTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/IOStrategyTest.cpp
@@ -1,8 +1,8 @@
-#include "FixedBinAxis.h"
-#include "OutputData.h"
-#include "OutputDataReadStrategy.h"
-#include "OutputDataWriteStrategy.h"
-#include "google_test.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/InputOutput/OutputDataReadStrategy.h"
+#include "Core/InputOutput/OutputDataWriteStrategy.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class IOStrategyTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp b/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp
index bbe3a2f4df3fb547d416854e566a5c9046676509..65943d5dafc330d27b6c8509d2c9caec5b0e0e02 100644
--- a/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp
@@ -1,6 +1,6 @@
-#include "IntensityDataFunctions.h"
-#include "VariableBinAxis.h"
-#include "google_test.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class IntensityDataFunctionsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/DataStructure/LLDataTest.cpp b/Tests/UnitTests/Core/DataStructure/LLDataTest.cpp
index 502dc9ede0e20f306db99d710a18c13ed0f5453b..3ad8f850e0a84bbbe6b8e52308767f358f91b213 100644
--- a/Tests/UnitTests/Core/DataStructure/LLDataTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/LLDataTest.cpp
@@ -1,6 +1,6 @@
-#include "LLData.h"
-#include "Complex.h"
-#include "google_test.h"
+#include "Core/Instrument/LLData.h"
+#include "Core/Basics/Complex.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <algorithm>
 
 class LLDataTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/DataStructure/OutputDataIteratorTest.cpp b/Tests/UnitTests/Core/DataStructure/OutputDataIteratorTest.cpp
index 3e267accbf0f0a5535af8e00d192f73c2f379874..6810a4288e77a4c6095aeb823227e55f2691f3ab 100644
--- a/Tests/UnitTests/Core/DataStructure/OutputDataIteratorTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/OutputDataIteratorTest.cpp
@@ -1,6 +1,6 @@
-#include "OutputDataIterator.h"
-#include "OutputData.h"
-#include "google_test.h"
+#include "Core/Instrument/OutputDataIterator.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class OutputDataIteratorTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp b/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp
index 3d6a51911dcc21a790a3512a2802108bf31bdbbd..96e8e3690e55acd2b816d68735daeaa76d618175 100644
--- a/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp
@@ -1,9 +1,9 @@
-#include "OutputData.h"
-#include "FixedBinAxis.h"
-#include "IntensityDataFunctions.h"
-#include "ThreadInfo.h"
-#include "VariableBinAxis.h"
-#include "google_test.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Parametrization/ThreadInfo.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <algorithm>
 
 class OutputDataTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp b/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp
index f25fbbc91b478187156542f1900d251a733b6ac0..720d095a33f0c0b7900d867d4a015cd2f0cbafe6 100644
--- a/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp
+++ b/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp
@@ -1,7 +1,7 @@
-#include "DetectorMask.h"
-#include "Polygon.h"
-#include "SphericalDetector.h"
-#include "google_test.h"
+#include "Core/Instrument/DetectorMask.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class DetectorMaskTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp b/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp
index 59367bd19da7689dc3a55f54bf8c4756232cc60a..0d2b05f763f92cc9bfe66f9732ec5b3507ccdd79 100644
--- a/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp
+++ b/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp
@@ -1,9 +1,9 @@
-#include "Beam.h"
-#include "SimpleUnitConverters.h"
-#include "SphericalDetector.h"
-#include "Units.h"
-#include "Vectors3D.h"
-#include "google_test.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class OffSpecularConverterTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Detector/PolygonTest.cpp b/Tests/UnitTests/Core/Detector/PolygonTest.cpp
index a0342139aa4405266dfa2397a6e58e8d5a6777ac..78752481682f0a9a782cab175747a17a4ded132e 100644
--- a/Tests/UnitTests/Core/Detector/PolygonTest.cpp
+++ b/Tests/UnitTests/Core/Detector/PolygonTest.cpp
@@ -1,6 +1,6 @@
-#include "Polygon.h"
-#include "Bin.h"
-#include "google_test.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Binning/Bin.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class PolygonTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/PrecomputedTest.cpp b/Tests/UnitTests/Core/Detector/PrecomputedTest.cpp
index 345c8a8e8ded5cc0bb7a3e49893e31e629e1f69c..28e82aed44cc5aaffe383203ac004cb51160e977 100644
--- a/Tests/UnitTests/Core/Detector/PrecomputedTest.cpp
+++ b/Tests/UnitTests/Core/Detector/PrecomputedTest.cpp
@@ -1,5 +1,5 @@
-#include "Precomputed.h"
-#include "google_test.h"
+#include "Core/Tools/Precomputed.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 namespace
diff --git a/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp b/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp
index 53c3cc06b2fed89564c314f491bcd8e1e0c6f0ab..dd6452e34b0a328ce4649243152d3af4665a9913 100644
--- a/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp
+++ b/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp
@@ -1,9 +1,9 @@
-#include "Beam.h"
-#include "RectangularDetector.h"
-#include "SimpleUnitConverters.h"
-#include "Units.h"
-#include "Vectors3D.h"
-#include "google_test.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 
 namespace
diff --git a/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp b/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp
index c1aaf6623ae1fa9daf333bdd250a800d4f667ed5..379d641295afa32c2b82e40632a9302c82287b2a 100644
--- a/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp
+++ b/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp
@@ -1,8 +1,8 @@
-#include "RectangularDetector.h"
-#include "GISASSimulation.h"
-#include "Numeric.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Tools/Numeric.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp b/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp
index 7bf74d0e6e7783d52caa27f3f082acf2dcd6b478..e9aeea796f149545e88ca159d7e83890823c4e20 100644
--- a/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp
+++ b/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp
@@ -1,7 +1,7 @@
-#include "RegionOfInterest.h"
-#include "Exceptions.h"
-#include "SphericalDetector.h"
-#include "google_test.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class RegionOfInterestTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp b/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp
index be89469a97d9d73e02939c2f2ab5e16ebb4b2aca..a99a7aeeffb1a789bc8ab26b65f1c66d5434e8e8 100644
--- a/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp
@@ -1,8 +1,8 @@
-#include "SimulationArea.h"
-#include "DetectorFunctions.h"
-#include "Rectangle.h"
-#include "SphericalDetector.h"
-#include "google_test.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Detector/SpecialFunctionsTest.cpp b/Tests/UnitTests/Core/Detector/SpecialFunctionsTest.cpp
index 9690bb0d74f3ee5e01f35e2611ce942ea72f726c..b918d67d8ca198e757ae49087a0de7b2d37df849 100644
--- a/Tests/UnitTests/Core/Detector/SpecialFunctionsTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SpecialFunctionsTest.cpp
@@ -1,6 +1,6 @@
-#include "MathConstants.h"
-#include "MathFunctions.h"
-#include "google_test.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 #define EXPECT_CNEAR(a, b, epsi)                                                                   \
     EXPECT_NEAR((a).real(), (b).real(), epsi);                                                     \
diff --git a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
index 26413ea2dfe15c5432f2ee1f2f886f65b0b34735..d3f3824017484305d41f7b9f77041452109cf145 100644
--- a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
@@ -1,11 +1,11 @@
-#include "SpecularDetector1D.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "FixedBinAxis.h"
-#include "OutputData.h"
-#include "SimulationArea.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Instrument/SpecularDetector1D.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class SpecularDetectorTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp b/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp
index 71d687dcd0fbd445fe9e3485a1cc2c73cdd2e2b9..2e6e9e3e73647ae2bcf5d72be29ed10cd4da69f2 100644
--- a/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp
@@ -1,9 +1,9 @@
-#include "Beam.h"
-#include "SimpleUnitConverters.h"
-#include "SphericalDetector.h"
-#include "Units.h"
-#include "Vectors3D.h"
-#include "google_test.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Instrument/SimpleUnitConverters.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class SphericalConverterTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
index 4246f01babf8148e0107d2c321b04a5910500aac..f223c82c82fa6c939e5f7609ef8540f9ad986eca 100644
--- a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
@@ -1,18 +1,18 @@
-#include "SphericalDetector.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "ConvolutionDetectorResolution.h"
-#include "DetectorFunctions.h"
-#include "Exceptions.h"
-#include "FixedBinAxis.h"
-#include "OutputData.h"
-#include "Polygon.h"
-#include "Rectangle.h"
-#include "RegionOfInterest.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "SimulationArea.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "Core/Instrument/DetectorFunctions.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RegionOfInterest.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "Core/Instrument/SimulationArea.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class SphericalDetectorTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp b/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp
index 96a003593fad2412b102a3c4030e4fc3e7d21101..52cb5fb290b8bebbc8e5ecd279790f9d9c784913 100644
--- a/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp
+++ b/Tests/UnitTests/Core/ExportToPython/PythonFormattingTest.cpp
@@ -1,12 +1,12 @@
-#include "PythonFormatting.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "FixedBinAxis.h"
-#include "ParameterDistribution.h"
-#include "PointwiseAxis.h"
-#include "RealLimits.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Export/PythonFormatting.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class PythonFormattingTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fitting/FitObjectiveTest.cpp b/Tests/UnitTests/Core/Fitting/FitObjectiveTest.cpp
index b3bb14a7e8b30f9f006c8523dbe9ce76ab98ef16..43cb70821942f9b04ae235e569f404677204d4ea 100644
--- a/Tests/UnitTests/Core/Fitting/FitObjectiveTest.cpp
+++ b/Tests/UnitTests/Core/Fitting/FitObjectiveTest.cpp
@@ -1,7 +1,7 @@
-#include "FitObjective.h"
-#include "FittingTestHelper.h"
-#include "Parameters.h"
-#include "google_test.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Tests/UnitTests/Core/Fitting/FittingTestHelper.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FitObjectiveTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fitting/FitObserverTest.cpp b/Tests/UnitTests/Core/Fitting/FitObserverTest.cpp
index c08dcd15e3ce72c5aa6fb7d3129e685375be65de..93822d546e88c7e266a836174eec2f65947b429e 100644
--- a/Tests/UnitTests/Core/Fitting/FitObserverTest.cpp
+++ b/Tests/UnitTests/Core/Fitting/FitObserverTest.cpp
@@ -1,5 +1,5 @@
-#include "FitObserver.h"
-#include "google_test.h"
+#include "Core/Fitting/FitObserver.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FitObserverTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fitting/FittingTestHelper.h b/Tests/UnitTests/Core/Fitting/FittingTestHelper.h
index 954a6a3c0f5351a53d07137957ea1b8ea8aa0931..4089f1da45fc9ecd49deaf2301a4ce596bc98731 100644
--- a/Tests/UnitTests/Core/Fitting/FittingTestHelper.h
+++ b/Tests/UnitTests/Core/Fitting/FittingTestHelper.h
@@ -1,13 +1,13 @@
 #ifndef FITTINGTESTHELPER_H
 #define FITTINGTESTHELPER_H
 
-#include "GISASSimulation.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "OutputData.h"
-#include "Parameters.h"
-#include "Units.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Instrument/OutputData.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Core/Parametrization/Units.h"
 #include <memory>
 
 //! Helper class to simplify testing of SimDataPair and FitObjective
diff --git a/Tests/UnitTests/Core/Fitting/ObjectiveMetricTest.cpp b/Tests/UnitTests/Core/Fitting/ObjectiveMetricTest.cpp
index 8adea01e16391a549edc0057201fca7751a1b6de..776986fca1b6b8c0d086c670ecf44952390a5854 100644
--- a/Tests/UnitTests/Core/Fitting/ObjectiveMetricTest.cpp
+++ b/Tests/UnitTests/Core/Fitting/ObjectiveMetricTest.cpp
@@ -1,6 +1,6 @@
-#include "ObjectiveMetric.h"
-#include "ObjectiveMetricUtils.h"
-#include "google_test.h"
+#include "Core/Fitting/ObjectiveMetric.h"
+#include "Core/Fitting/ObjectiveMetricUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 
 class ObjectiveMetricTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Fitting/SimDataPairTest.cpp b/Tests/UnitTests/Core/Fitting/SimDataPairTest.cpp
index d72607607204ce366dcc93ebc25ed730823f49be..6e4ba0393c3bb40b0316dd09ad827cfa46112e66 100644
--- a/Tests/UnitTests/Core/Fitting/SimDataPairTest.cpp
+++ b/Tests/UnitTests/Core/Fitting/SimDataPairTest.cpp
@@ -1,7 +1,7 @@
-#include "SimDataPair.h"
-#include "FittingTestHelper.h"
-#include "Parameters.h"
-#include "google_test.h"
+#include "Core/Fitting/SimDataPair.h"
+#include "Tests/UnitTests/Core/Fitting/FittingTestHelper.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class SimDataPairTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp
index 0646790ee9b910e01698b3d80ffbaf34397926d7..c57d9dc8a861368e28e1845d79426afa3243fab5 100644
--- a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp
@@ -1,16 +1,16 @@
-#include "DepthProbeSimulation.h"
-#include "Distributions.h"
-#include "FixedBinAxis.h"
-#include "Histogram2D.h"
-#include "IMultiLayerBuilder.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "ParameterPattern.h"
-#include "RealParameter.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class DepthProbeSimulationTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/KzComputationTest.cpp b/Tests/UnitTests/Core/Fresnel/KzComputationTest.cpp
index 3f03b3309c5879b6c087bf17467d451dacaec96d..2d4dd95b8ac784ec50c695c8ca66975d781579e8 100644
--- a/Tests/UnitTests/Core/Fresnel/KzComputationTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/KzComputationTest.cpp
@@ -1,12 +1,12 @@
-#include "KzComputation.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "PlainMultiLayerBySLDBuilder.h"
-#include "ProcessedSample.h"
-#include "SimulationOptions.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Multilayer/KzComputation.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/StandardSamples/PlainMultiLayerBySLDBuilder.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class KzComputationTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/MatrixRTCoefficientsTest.cpp b/Tests/UnitTests/Core/Fresnel/MatrixRTCoefficientsTest.cpp
index eb99e02313fadc2301d9fec714e01b9065236c1c..9e681c8d5fcbecfaedc49408e431fab3f5360473 100644
--- a/Tests/UnitTests/Core/Fresnel/MatrixRTCoefficientsTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/MatrixRTCoefficientsTest.cpp
@@ -1,5 +1,5 @@
-#include "MatrixRTCoefficients.h"
-#include "google_test.h"
+#include "Core/Multilayer/MatrixRTCoefficients.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class MatrixRTCoefficientsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/ScalarRTCoefficientsTest.cpp b/Tests/UnitTests/Core/Fresnel/ScalarRTCoefficientsTest.cpp
index ac2b0a91bb6e3ccfab6697f2ff4a8f564ee9fae1..328f4e05ef653abf65625cb6c9a185f4de008472 100644
--- a/Tests/UnitTests/Core/Fresnel/ScalarRTCoefficientsTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/ScalarRTCoefficientsTest.cpp
@@ -1,5 +1,5 @@
-#include "ScalarRTCoefficients.h"
-#include "google_test.h"
+#include "Core/Multilayer/ScalarRTCoefficients.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ScalarRTCoefficientsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp
index d7206632b3a9ba36c6eff9d9f153f359c2001407..e77faf7132c870a958397e4421ac3a0bfba9e9d1 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp
@@ -1,12 +1,12 @@
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "ProcessedSample.h"
-#include "SimulationOptions.h"
-#include "SpecularMagneticOldStrategy.h"
-#include "SpecularScalarTanhStrategy.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Multilayer/SpecularMagneticOldStrategy.h"
+#include "Core/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class SpecularMagneticTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest_v2.cpp b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest_v2.cpp
index 44bf777a97e7bab1a89f450bf22dd599f96a8400..e353ede5c623d1abff8e9a8dfd13537a4cffa147 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest_v2.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest_v2.cpp
@@ -1,12 +1,12 @@
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MultiLayer.h"
-#include "ProcessedSample.h"
-#include "SimulationOptions.h"
-#include "SpecularMagneticStrategy.h"
-#include "SpecularScalarTanhStrategy.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Multilayer/SpecularMagneticStrategy.h"
+#include "Core/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 constexpr double eps = 1e-10;
 
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp
index f0090ac6e187317696950f78f179cecebf706c87..81311b93f2fe3a933cabaa39d69d0690c0d7a187 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp
@@ -1,12 +1,12 @@
-#include "AngularSpecScan.h"
-#include "FixedBinAxis.h"
-#include "FootprintFactorGaussian.h"
-#include "PointwiseAxis.h"
-#include "QSpecScan.h"
-#include "RangedDistributions.h"
-#include "ScanResolution.h"
-#include "SpecularSimulationElement.h"
-#include "google_test.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/SimulationElement/SpecularSimulationElement.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class SpecularScanTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp
index 8a1bf78a390fd410dc6d56c3b365e1651ee26475..41d3c572fec4b8f5a2c400f08d0ccb39b4c87273 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp
@@ -1,20 +1,20 @@
-#include "SpecularSimulation.h"
-#include "AngularSpecScan.h"
-#include "Distributions.h"
-#include "Exceptions.h"
-#include "FixedBinAxis.h"
-#include "Histogram1D.h"
-#include "IMultiLayerBuilder.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "ParameterPattern.h"
-#include "QSpecScan.h"
-#include "RealParameter.h"
-#include "Units.h"
-#include "VariableBinAxis.h"
-#include "google_test.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 
 class SpecularSimulationTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Other/BeamFootprintTest.cpp b/Tests/UnitTests/Core/Other/BeamFootprintTest.cpp
index 8569990a02dc22f56dd74be8f9e5bb0a1bfa2fd9..cef1df8f4617b5656aec52120ebdf7c4bf48cb0e 100644
--- a/Tests/UnitTests/Core/Other/BeamFootprintTest.cpp
+++ b/Tests/UnitTests/Core/Other/BeamFootprintTest.cpp
@@ -1,8 +1,8 @@
-#include "Beam.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 #include <limits>
 #include <memory>
diff --git a/Tests/UnitTests/Core/Other/BeamTest.cpp b/Tests/UnitTests/Core/Other/BeamTest.cpp
index 3e7ba0c49c238f49def0a74d29c6368c2d98084d..2ab6c25bc8508f0288d1b0f78ae02c2c0f1a631e 100644
--- a/Tests/UnitTests/Core/Other/BeamTest.cpp
+++ b/Tests/UnitTests/Core/Other/BeamTest.cpp
@@ -1,11 +1,11 @@
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "MathConstants.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
-#include "google_test.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 #include <memory>
 #include <typeinfo>
diff --git a/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp b/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
index b59cf4e35f01f70c10b4feba7471e253f9a18351..ec4d6d885987931b0d283d4d3646381f70623689 100644
--- a/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
+++ b/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
@@ -1,8 +1,8 @@
-#include "ChiSquaredModule.h"
-#include "BornAgainNamespace.h"
-#include "OutputData.h"
-#include "VarianceFunctions.h"
-#include "google_test.h"
+#include "Core/Instrument/ChiSquaredModule.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Instrument/VarianceFunctions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 // TODO revise test
 
diff --git a/Tests/UnitTests/Core/Other/CumulativeValueTest.cpp b/Tests/UnitTests/Core/Other/CumulativeValueTest.cpp
index 7a285a7c59ad60223e414d138dce1cc576aee426..0f136dd4a7ab941a005887f083702c56049171b8 100644
--- a/Tests/UnitTests/Core/Other/CumulativeValueTest.cpp
+++ b/Tests/UnitTests/Core/Other/CumulativeValueTest.cpp
@@ -1,5 +1,5 @@
-#include "CumulativeValue.h"
-#include "google_test.h"
+#include "Core/Instrument/CumulativeValue.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class CumulativeValueTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/FileSystemUtilsTest.cpp b/Tests/UnitTests/Core/Other/FileSystemUtilsTest.cpp
index d07ecc375bfb6bffb32b6ffee9a36297ec1266ca..b66c0dd89bdd30c6c63735a9457b3879b13f3877 100644
--- a/Tests/UnitTests/Core/Other/FileSystemUtilsTest.cpp
+++ b/Tests/UnitTests/Core/Other/FileSystemUtilsTest.cpp
@@ -1,5 +1,5 @@
-#include "FileSystemUtils.h"
-#include "google_test.h"
+#include "Core/Tools/FileSystemUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FileSystemUtilsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/FourierTransformTest.cpp b/Tests/UnitTests/Core/Other/FourierTransformTest.cpp
index 3a4c50f56efe296a09ebecca08f9673e097d1fdb..76753acbe67e904b91a0e61ca97a8e3ce977d38d 100644
--- a/Tests/UnitTests/Core/Other/FourierTransformTest.cpp
+++ b/Tests/UnitTests/Core/Other/FourierTransformTest.cpp
@@ -1,11 +1,11 @@
 #ifndef FOURIERTRANSFORMTEST_H
 #define FOURIERTRANSFORMTEST_H
 
-#include "FourierTransform.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "OutputData.h"
-#include "google_test.h"
+#include "Core/Instrument/FourierTransform.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FourierTransformTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp b/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp
index 965a44c8752a88b78dea03fcf21cdc3ff3049619..2d9b6fc01b38ec26439708d7159dad2447b2b5d2 100644
--- a/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp
+++ b/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp
@@ -1,11 +1,11 @@
-#include "GISASSimulation.h"
-#include "Beam.h"
-#include "BornAgainNamespace.h"
-#include "IMultiLayerBuilder.h"
-#include "Layer.h"
-#include "MultiLayer.h"
-#include "OutputData.h"
-#include "google_test.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Other/InstrumentTest.cpp b/Tests/UnitTests/Core/Other/InstrumentTest.cpp
index 484f98cdbc132a4de7f2d38111f489cadc834151..eb92eb69e8d0e5a9775608344eacccdead1d147f 100644
--- a/Tests/UnitTests/Core/Other/InstrumentTest.cpp
+++ b/Tests/UnitTests/Core/Other/InstrumentTest.cpp
@@ -1,8 +1,8 @@
-#include "Instrument.h"
-#include "BornAgainNamespace.h"
-#include "MathConstants.h"
-#include "OutputData.h"
-#include "google_test.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class InstrumentTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/LayerFillLimitsTest.cpp b/Tests/UnitTests/Core/Other/LayerFillLimitsTest.cpp
index 0e59b94385f418a4b0b5dcb69e2c8efef9179702..94f673386899e80372390d3ea7cd287173c81afd 100644
--- a/Tests/UnitTests/Core/Other/LayerFillLimitsTest.cpp
+++ b/Tests/UnitTests/Core/Other/LayerFillLimitsTest.cpp
@@ -1,5 +1,5 @@
-#include "LayerFillLimits.h"
-#include "google_test.h"
+#include "Core/Multilayer/LayerFillLimits.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <stdexcept>
 
 class LayerFillLimitsTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Other/MaterialTest.cpp b/Tests/UnitTests/Core/Other/MaterialTest.cpp
index eec16a3f99982bbddb132b282387ab7a6cd1b0b6..8bc3e7b7f533f386739a653d9752e6a618ed1dcd 100644
--- a/Tests/UnitTests/Core/Other/MaterialTest.cpp
+++ b/Tests/UnitTests/Core/Other/MaterialTest.cpp
@@ -1,12 +1,12 @@
-#include "Exceptions.h"
-#include "HomogeneousRegion.h"
-#include "MaterialBySLDImpl.h"
-#include "MaterialFactoryFuncs.h"
-#include "RefractiveMaterialImpl.h"
-#include "Rotations.h"
-#include "Units.h"
-#include "WavevectorInfo.h"
-#include "google_test.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Particle/HomogeneousRegion.h"
+#include "Core/Material/MaterialBySLDImpl.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Material/RefractiveMaterialImpl.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Vector/WavevectorInfo.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class MaterialTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/OrderedMapTest.cpp b/Tests/UnitTests/Core/Other/OrderedMapTest.cpp
index ff80160a0398cea2c0a7a3284f22261dabc48c16..a02ee1538e3ee523eca729502bd435a96c83f890 100644
--- a/Tests/UnitTests/Core/Other/OrderedMapTest.cpp
+++ b/Tests/UnitTests/Core/Other/OrderedMapTest.cpp
@@ -1,6 +1,6 @@
-#include "OrderedMap.h"
-#include "INamed.h"
-#include "google_test.h"
+#include "Core/Tools/OrderedMap.h"
+#include "Core/Basics/INamed.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class OrderedMapTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/RelDiffTest.cpp b/Tests/UnitTests/Core/Other/RelDiffTest.cpp
index 1ae9697c55c2efc2bca3b2edcefb18065df29ed3..4c7f4957d5ae5c68887c6c06cbac9c41b76afb37 100644
--- a/Tests/UnitTests/Core/Other/RelDiffTest.cpp
+++ b/Tests/UnitTests/Core/Other/RelDiffTest.cpp
@@ -1,5 +1,5 @@
-#include "Numeric.h"
-#include "google_test.h"
+#include "Core/Tools/Numeric.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <algorithm>
 
 class RelDiffTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Other/RotationTest.cpp b/Tests/UnitTests/Core/Other/RotationTest.cpp
index 78b750263b808fa88c941494c451f5ec574300ce..a00ecb94b6c1638a44f11bcb1a35ed6e5ce27cf5 100644
--- a/Tests/UnitTests/Core/Other/RotationTest.cpp
+++ b/Tests/UnitTests/Core/Other/RotationTest.cpp
@@ -1,5 +1,5 @@
-#include "Rotations.h"
-#include "google_test.h"
+#include "Core/Scattering/Rotations.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Other/SampleBuilderNoteTest.cpp b/Tests/UnitTests/Core/Other/SampleBuilderNoteTest.cpp
index 77e1f9c9b25ce2a94393757a4172b3958ddf0a42..4fc724651d3deee66683e9893f497c61b6b79f7d 100644
--- a/Tests/UnitTests/Core/Other/SampleBuilderNoteTest.cpp
+++ b/Tests/UnitTests/Core/Other/SampleBuilderNoteTest.cpp
@@ -1,8 +1,8 @@
-#include "IMultiLayerBuilder.h"
-#include "MultiLayer.h"
-#include "ParameterPool.h"
-#include "SampleBuilderNode.h"
-#include "google_test.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Multilayer/SampleBuilderNode.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 #include <memory>
 #include <stdexcept>
diff --git a/Tests/UnitTests/Core/Other/SampleProviderTest.cpp b/Tests/UnitTests/Core/Other/SampleProviderTest.cpp
index 0083001a763a95c6a2a086b6cacea706bf07af8e..cfb27e1c152c02acf3434db9d204b13bc921b107 100644
--- a/Tests/UnitTests/Core/Other/SampleProviderTest.cpp
+++ b/Tests/UnitTests/Core/Other/SampleProviderTest.cpp
@@ -1,9 +1,9 @@
-#include "SampleProvider.h"
-#include "IMultiLayerBuilder.h"
-#include "MultiLayer.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
-#include "google_test.h"
+#include "Core/Multilayer/SampleProvider.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class SampleProviderTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Other/Shape2DTest.cpp b/Tests/UnitTests/Core/Other/Shape2DTest.cpp
index 3cd71bb79c265776e2a52942e3d435035491e33c..7b0ac6eda302f0532631beb82fb67ed39e1cef43 100644
--- a/Tests/UnitTests/Core/Other/Shape2DTest.cpp
+++ b/Tests/UnitTests/Core/Other/Shape2DTest.cpp
@@ -1,10 +1,10 @@
-#include "Bin.h"
-#include "Ellipse.h"
-#include "Line.h"
-#include "MathConstants.h"
-#include "Rectangle.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Mask/Ellipse.h"
+#include "Core/Mask/Line.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class Shape2DTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Other/SimulationResultTest.cpp b/Tests/UnitTests/Core/Other/SimulationResultTest.cpp
index 56dca8bb636dda9606f6cfa546666e5e75c62834..9ad381819e9310834abb11f3a3e91cb216368e29 100644
--- a/Tests/UnitTests/Core/Other/SimulationResultTest.cpp
+++ b/Tests/UnitTests/Core/Other/SimulationResultTest.cpp
@@ -1,7 +1,7 @@
-#include "SimulationResult.h"
-#include "GISASSimulation.h"
-#include "OutputData.h"
-#include "google_test.h"
+#include "Core/Instrument/SimulationResult.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Instrument/OutputData.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class SimulationResultTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/SpectrumTest.cpp b/Tests/UnitTests/Core/Other/SpectrumTest.cpp
index 5a6b9bc373284d4ecb7ff6ccb929e6b2b571adbd..fd83ecd7051d878a96bcc916658b3be66b8876d8 100644
--- a/Tests/UnitTests/Core/Other/SpectrumTest.cpp
+++ b/Tests/UnitTests/Core/Other/SpectrumTest.cpp
@@ -1,6 +1,6 @@
-#include "Histogram2D.h"
-#include "SpectrumUtils.h"
-#include "google_test.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Tools/SpectrumUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include "tspectrum.h"
 #include <iostream>
 
diff --git a/Tests/UnitTests/Core/Other/TRangeTest.cpp b/Tests/UnitTests/Core/Other/TRangeTest.cpp
index c2d57005878559da7e9d99c23f06392059cc127f..8aefa001f9a1ae97a360207d70650a037ed3ac26 100644
--- a/Tests/UnitTests/Core/Other/TRangeTest.cpp
+++ b/Tests/UnitTests/Core/Other/TRangeTest.cpp
@@ -1,5 +1,5 @@
-#include "TRange.h"
-#include "google_test.h"
+#include "Core/Particle/TRange.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <algorithm>
 
 class TRangeTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Other/ThreadInfoTest.cpp b/Tests/UnitTests/Core/Other/ThreadInfoTest.cpp
index 9771663ec54ca567b26e5d933f1d9f4c4dd09361..9e4d569db8de71e4f2430bf1c71c341df10248d4 100644
--- a/Tests/UnitTests/Core/Other/ThreadInfoTest.cpp
+++ b/Tests/UnitTests/Core/Other/ThreadInfoTest.cpp
@@ -1,5 +1,5 @@
-#include "ThreadInfo.h"
-#include "google_test.h"
+#include "Core/Parametrization/ThreadInfo.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ThreadInfoTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Other/ZLimitsTest.cpp b/Tests/UnitTests/Core/Other/ZLimitsTest.cpp
index 4b241f52213bd1e13ef4dc401af063ef9a20c477..1ebb8937844cd3e30a2f3a34f498ba49115b14b7 100644
--- a/Tests/UnitTests/Core/Other/ZLimitsTest.cpp
+++ b/Tests/UnitTests/Core/Other/ZLimitsTest.cpp
@@ -1,5 +1,5 @@
-#include "ZLimits.h"
-#include "google_test.h"
+#include "Core/Particle/ZLimits.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <stdexcept>
 
 class ZLimitsTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Parameters/DistributionHandlerTest.cpp b/Tests/UnitTests/Core/Parameters/DistributionHandlerTest.cpp
index 3789fa7ca7a41c9ab15269e2c1065e0155e5b4d4..d062b66dcf13488d7861233a7e5a6869e0cfa469 100644
--- a/Tests/UnitTests/Core/Parameters/DistributionHandlerTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/DistributionHandlerTest.cpp
@@ -1,8 +1,8 @@
-#include "DistributionHandler.h"
-#include "Distributions.h"
-#include "IParameterized.h"
-#include "ParameterPool.h"
-#include "google_test.h"
+#include "Core/Parametrization/DistributionHandler.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 
 class DistributionHandlerTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp b/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp
index c6728e716bac770aececa13a9a5bf8a7d6342bb1..617821a2aae2ef64b820ba3859a0a9f2a8102baf 100644
--- a/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/DistributionsTest.cpp
@@ -1,10 +1,10 @@
-#include "Distributions.h"
-#include "BornAgainNamespace.h"
-#include "Exceptions.h"
-#include "MathConstants.h"
-#include "ParameterSample.h"
-#include "RealParameter.h"
-#include "google_test.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp b/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp
index f465d4190dcad9eb9ecdbd7858d7797f8789074b..3b1880d0058102b51ce58c5ae610c92f7309e095 100644
--- a/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/FTDistributionsTest.cpp
@@ -1,9 +1,9 @@
-#include "BornAgainNamespace.h"
-#include "FTDistributions1D.h"
-#include "FTDistributions2D.h"
-#include "MathConstants.h"
-#include "RealParameter.h"
-#include "google_test.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class FTDistributionsTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Parameters/IParameterizedTest.cpp b/Tests/UnitTests/Core/Parameters/IParameterizedTest.cpp
index 429e63e8749cb5d6986b4a0dee9971c92a0bd554..cd5256df91dcea0b96d74de3ac1b5ab66d057f17 100644
--- a/Tests/UnitTests/Core/Parameters/IParameterizedTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/IParameterizedTest.cpp
@@ -1,5 +1,5 @@
-#include "IParameterized.h"
-#include "google_test.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <stdexcept>
 
 class IParameterizedTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Parameters/ParameterDistributionTest.cpp b/Tests/UnitTests/Core/Parameters/ParameterDistributionTest.cpp
index db993f6a92fa0329f897b227732a6f0afbd583e8..c2288ef3018829676dd2d317f1a0baf244c00e3b 100644
--- a/Tests/UnitTests/Core/Parameters/ParameterDistributionTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/ParameterDistributionTest.cpp
@@ -1,10 +1,10 @@
-#include "ParameterDistribution.h"
-#include "Distributions.h"
-#include "Exceptions.h"
-#include "IParameterized.h"
-#include "ParameterSample.h"
-#include "ParameterUtils.h"
-#include "google_test.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 
 class ParameterDistributionTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Parameters/ParameterPatternTest.cpp b/Tests/UnitTests/Core/Parameters/ParameterPatternTest.cpp
index bc81144f005a00faf5469550de136080d18c66c6..2066dee0a524f80101e14a3bf8b1a1281f0f819c 100644
--- a/Tests/UnitTests/Core/Parameters/ParameterPatternTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/ParameterPatternTest.cpp
@@ -1,5 +1,5 @@
-#include "ParameterPattern.h"
-#include "google_test.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <string>
 
 class ParameterPatternTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Parameters/ParameterPoolTest.cpp b/Tests/UnitTests/Core/Parameters/ParameterPoolTest.cpp
index 4ecd4c7caa1a0e213aafadac6bb9d3358156e93c..68e2527da7f39876fd92569df634d77b100d599b 100644
--- a/Tests/UnitTests/Core/Parameters/ParameterPoolTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/ParameterPoolTest.cpp
@@ -1,7 +1,7 @@
-#include "ParameterPool.h"
-#include "Exceptions.h"
-#include "RealParameter.h"
-#include "google_test.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ParameterPoolTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Parameters/RangedDistributionTest.cpp b/Tests/UnitTests/Core/Parameters/RangedDistributionTest.cpp
index f6e2d2894cd9d4f18e07a976212297bc7b33d208..1dfbd3f238dd6b509e6deb2e4bd1d00cb49320cf 100644
--- a/Tests/UnitTests/Core/Parameters/RangedDistributionTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/RangedDistributionTest.cpp
@@ -1,7 +1,7 @@
-#include "Distributions.h"
-#include "ParameterSample.h"
-#include "RangedDistributions.h"
-#include "google_test.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class RangedDistributionTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp b/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp
index 437474fe627133a8f4b7c87e2d2083c0cadf6bb3..2b8c68fce9cfa85025c9e4526d6cdb771a3ffb74 100644
--- a/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp
@@ -1,6 +1,6 @@
-#include "RealParameter.h"
-#include "IParameterized.h"
-#include "google_test.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <iostream>
 #include <stdexcept>
 
diff --git a/Tests/UnitTests/Core/Parameters/ScanResolutionTest.cpp b/Tests/UnitTests/Core/Parameters/ScanResolutionTest.cpp
index cb14abb49560ab79e47c472df212eca79670bf78..c4d99f2b261bc020a62ff592ff8745deb3dc23b9 100644
--- a/Tests/UnitTests/Core/Parameters/ScanResolutionTest.cpp
+++ b/Tests/UnitTests/Core/Parameters/ScanResolutionTest.cpp
@@ -1,7 +1,7 @@
-#include "ScanResolution.h"
-#include "ParameterSample.h"
-#include "RangedDistributions.h"
-#include "google_test.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <cmath>
 
 class ScanResolutionTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Sample/CrystalTest.cpp b/Tests/UnitTests/Core/Sample/CrystalTest.cpp
index b1db93fe6da1828382d7669f7c2d994272435798..28a1b699b68e921aed0dfc5aea1a3027f96fe626 100644
--- a/Tests/UnitTests/Core/Sample/CrystalTest.cpp
+++ b/Tests/UnitTests/Core/Sample/CrystalTest.cpp
@@ -1,8 +1,8 @@
-#include "Crystal.h"
-#include "BornAgainNamespace.h"
-#include "Lattice.h"
-#include "ParticleComposition.h"
-#include "google_test.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class CrystalTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp b/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp
index ab165ce172baeabf2755fa9fb2f13833aadb4d60..4c6bd7a9fd2dacde916d11a820fd641efb8759aa 100644
--- a/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp
+++ b/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp
@@ -1,10 +1,10 @@
-#include "BornAgainNamespace.h"
-#include "HardParticles.h"
-#include "IFormFactorBorn.h"
-#include "MathConstants.h"
-#include "Rotations.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Core/Scattering/IFormFactorBorn.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FormFactorBasicTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp b/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp
index 6a333f04565b6b52654e59574bae4c9a14eeeab2..76ebf0a01bf80d68c3f95cf7dff17941ae538a68 100644
--- a/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp
+++ b/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp
@@ -1,7 +1,7 @@
-#include "FormFactorCoherentSum.h"
-#include "Exceptions.h"
-#include "FormFactorDot.h"
-#include "google_test.h"
+#include "Core/Aggregate/FormFactorCoherentSum.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/HardParticle/FormFactorDot.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FormFactorCoherentSumTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/FormFactorSoftParticleTest.cpp b/Tests/UnitTests/Core/Sample/FormFactorSoftParticleTest.cpp
index 0ddf4a4ec5b051c1ec942b100b3fabf9d6f9997f..5094dfb76793717d9efc17f8077aaa1030ab9dd3 100644
--- a/Tests/UnitTests/Core/Sample/FormFactorSoftParticleTest.cpp
+++ b/Tests/UnitTests/Core/Sample/FormFactorSoftParticleTest.cpp
@@ -1,6 +1,6 @@
-#include "Exceptions.h"
-#include "SoftParticles.h"
-#include "google_test.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/includeIncludes/SoftParticles.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class FormFactorSoftParticleTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/INodeTest.cpp b/Tests/UnitTests/Core/Sample/INodeTest.cpp
index 6107ccbc2db434be4f5fc245930b9b470e44f273..c295acba2ca122bcce64fe413beecb72075401c7 100644
--- a/Tests/UnitTests/Core/Sample/INodeTest.cpp
+++ b/Tests/UnitTests/Core/Sample/INodeTest.cpp
@@ -1,9 +1,9 @@
-#include "INode.h"
-#include "Exceptions.h"
-#include "NodeUtils.h"
-#include "ParameterPool.h"
-#include "RealParameter.h"
-#include "google_test.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Basics/Exceptions.h"
+#include "Core/Parametrization/NodeUtils.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 namespace
diff --git a/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp b/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp
index 8b92a4897edb1429d7aef5cf7a76652d94caac6a..3a9e805a273cb517cde5b1daca42da2cb916da8f 100644
--- a/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp
+++ b/Tests/UnitTests/Core/Sample/Lattice2DTest.cpp
@@ -1,6 +1,6 @@
-#include "Lattice2D.h"
-#include "BornAgainNamespace.h"
-#include "google_test.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class Lattice2DTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/LatticeTest.cpp b/Tests/UnitTests/Core/Sample/LatticeTest.cpp
index 2a677b603e6edb2dde8726686026d98e78c9c6ad..d040e8ed802a7650af1697c5b83cfefc0b565149 100644
--- a/Tests/UnitTests/Core/Sample/LatticeTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LatticeTest.cpp
@@ -1,7 +1,7 @@
-#include "Lattice.h"
-#include "MathConstants.h"
-#include "Transform3D.h"
-#include "google_test.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Vector/Transform3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class LatticeTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp b/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp
index 6051633be03c56e9f3a35638ede890e123f07e29..5a771505b156d969f9d15485631a2a2e581c7c3d 100644
--- a/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp
@@ -1,6 +1,6 @@
-#include "LatticeUtils.h"
-#include "ILatticeOrientation.h"
-#include "google_test.h"
+#include "Core/Lattice/LatticeUtils.h"
+#include "Core/Lattice/ILatticeOrientation.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class LatticeUtilsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp b/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
index 222cbfd7727a66420f75790ad9b0c8f95ad805ee..17bacf5b47077a805ecef32b11d2d0e71cbc1d22 100644
--- a/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
@@ -1,9 +1,9 @@
-#include "LayerInterface.h"
-#include "BornAgainNamespace.h"
-#include "Layer.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "google_test.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class LayerInterfaceTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp b/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
index 327c10a1e1f6a43c2696b6f963f5fa55a5265c54..5c3d59334fec8f6ef8b2213589e9ea523e3f28c5 100644
--- a/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
@@ -1,7 +1,7 @@
-#include "LayerRoughness.h"
-#include "BornAgainNamespace.h"
-#include "ParameterPattern.h"
-#include "google_test.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/ParameterPattern.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class LayerRoughnessTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/LayerTest.cpp b/Tests/UnitTests/Core/Sample/LayerTest.cpp
index 509db764819ea14507e5066bb4673428a4e8f89b..595701fae2183e79785b4da6ddd9f83cb14c20ef 100644
--- a/Tests/UnitTests/Core/Sample/LayerTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerTest.cpp
@@ -1,8 +1,8 @@
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "ParticleLayout.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class LayerTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp b/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp
index 9852b86e34e9ade38256b121706915ed6d3fae67..9850bd8b1ec5306309223d8de1a67e5117531fd3 100644
--- a/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MesoCrystalTest.cpp
@@ -1,10 +1,10 @@
-#include "MesoCrystal.h"
-#include "BornAgainNamespace.h"
-#include "Crystal.h"
-#include "FormFactorFullSphere.h"
-#include "Lattice.h"
-#include "ParticleComposition.h"
-#include "google_test.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class MesoCrystalTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
index 7860295697a628ad4f62e561eb910c43d9113cec..be381551a7ca9815dca61a931e846e762b343e17 100644
--- a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
@@ -1,14 +1,14 @@
-#include "MultiLayer.h"
-#include "BornAgainNamespace.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MultiLayerUtils.h"
-#include "ParticleLayout.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Computation/MultiLayerUtils.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 using MultiLayerUtils::LayerBottomInterface;
 using MultiLayerUtils::LayerThickness;
diff --git a/Tests/UnitTests/Core/Sample/MultilayerAveragingTest.cpp b/Tests/UnitTests/Core/Sample/MultilayerAveragingTest.cpp
index 0b271c7b531d9bddb6c2582b463418e1fe057305..a5d59de9dc9881bf61afdfd84e82f3f5ae40724d 100644
--- a/Tests/UnitTests/Core/Sample/MultilayerAveragingTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MultilayerAveragingTest.cpp
@@ -1,15 +1,15 @@
-#include "FormFactorCylinder.h"
-#include "InterferenceFunction2DLattice.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "Particle.h"
-#include "ParticleLayout.h"
-#include "ProcessedSample.h"
-#include "SimulationOptions.h"
-#include "Slice.h"
-#include "google_test.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Computation/Slice.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class MultilayerAveragingTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp b/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp
index 4030ca9ecac2488b7b0e11c41fa43c36a9b6710d..50ad4bbb3889957fe7b85e2b23d579dd86ac8205 100644
--- a/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleCompositionTest.cpp
@@ -1,10 +1,10 @@
-#include "ParticleComposition.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorFullSphere.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "Particle.h"
-#include "google_test.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Particle/Particle.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ParticleCompositionTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp b/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp
index 66987f5b9a1c7b41b7517afc83928d0f14e6cd12..ba3a57c04ebc0331116ad248cc73f63e5b4fb9c7 100644
--- a/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp
@@ -1,12 +1,12 @@
-#include "ParticleCoreShell.h"
-#include "BornAgainNamespace.h"
-#include "HardParticles.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "Particle.h"
-#include "Rotations.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ParticleCoreShellTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp b/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp
index a5da124749054e59fcdd88883295ab3794e36567..95334fa690704efa4103bf651e84ad50c38bc5f6 100644
--- a/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp
@@ -1,12 +1,12 @@
-#include "ParticleDistribution.h"
-#include "BornAgainNamespace.h"
-#include "Distributions.h"
-#include "FormFactors.h"
-#include "MaterialFactoryFuncs.h"
-#include "ParameterUtils.h"
-#include "Particle.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Parametrization/ParameterUtils.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ParticleDistributionTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp b/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp
index a8cc65a425ec92c87fe3891a8b5df177de1de824..887da8cf861f2fd028685535302b5908c7fc2722 100644
--- a/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleLayoutTest.cpp
@@ -1,13 +1,13 @@
-#include "ParticleLayout.h"
-#include "BornAgainNamespace.h"
-#include "IAbstractParticle.h"
-#include "INodeUtils.h"
-#include "InterferenceFunction1DLattice.h"
-#include "InterferenceFunctionNone.h"
-#include "MaterialFactoryFuncs.h"
-#include "Particle.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Particle/IAbstractParticle.h"
+#include "Core/Export/INodeUtils.h"
+#include "Core/Aggregate/InterferenceFunction1DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ParticleLayoutTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/ParticleTest.cpp b/Tests/UnitTests/Core/Sample/ParticleTest.cpp
index 72c1d292483cdae4193e6cc6a6053aba08129368..c69aa8f303d06784e7d0743662126619b0f45b85 100644
--- a/Tests/UnitTests/Core/Sample/ParticleTest.cpp
+++ b/Tests/UnitTests/Core/Sample/ParticleTest.cpp
@@ -1,10 +1,10 @@
-#include "Particle.h"
-#include "BornAgainNamespace.h"
-#include "FormFactorFullSphere.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class ParticleTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/Sample/RTTest.cpp b/Tests/UnitTests/Core/Sample/RTTest.cpp
index 1c4a5c9d9ebbf9a2582f9f8dbb672683abea3cf5..2a6a2242e268dfb39eec3ead24644c73a92e3951 100644
--- a/Tests/UnitTests/Core/Sample/RTTest.cpp
+++ b/Tests/UnitTests/Core/Sample/RTTest.cpp
@@ -1,15 +1,15 @@
-#include "BornAgainNamespace.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "MultiLayer.h"
-#include "ParticleLayout.h"
-#include "ProcessedSample.h"
-#include "SimulationOptions.h"
-#include "SpecularScalarTanhStrategy.h"
-#include "google_test.h"
+#include "Core/Basics/BornAgainNamespace.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Computation/ProcessedSample.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class RTTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/SimulationElement/DepthProbeElementTest.cpp b/Tests/UnitTests/Core/SimulationElement/DepthProbeElementTest.cpp
index 847331afa272410af3d341fd777b48be24e90745..10f24fa694acb57f2066985831f50fb6af570c4c 100644
--- a/Tests/UnitTests/Core/SimulationElement/DepthProbeElementTest.cpp
+++ b/Tests/UnitTests/Core/SimulationElement/DepthProbeElementTest.cpp
@@ -1,6 +1,6 @@
-#include "DepthProbeElement.h"
-#include "FixedBinAxis.h"
-#include "google_test.h"
+#include "Core/SimulationElement/DepthProbeElement.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class DepthProbeElementTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/SimulationElement/PolarizationHandlerTest.cpp b/Tests/UnitTests/Core/SimulationElement/PolarizationHandlerTest.cpp
index 2f3f570633c39eacb7c663306ff7ce3c36e43279..225d050ddaa20802a5b43c26e29ff5d4d330b920 100644
--- a/Tests/UnitTests/Core/SimulationElement/PolarizationHandlerTest.cpp
+++ b/Tests/UnitTests/Core/SimulationElement/PolarizationHandlerTest.cpp
@@ -1,6 +1,6 @@
-#include "PolarizationHandler.h"
-#include "EigenCore.h"
-#include "google_test.h"
+#include "Core/SimulationElement/PolarizationHandler.h"
+#include "Core/Vector/EigenCore.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class PolarizationHandlerTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Core/SimulationElement/SimulationElementTest.cpp b/Tests/UnitTests/Core/SimulationElement/SimulationElementTest.cpp
index 0427bb55028b660606339ed40f233b1baee3fc73..00d0c92b4b9d62fa7da14b54150e43bbe7496c21 100644
--- a/Tests/UnitTests/Core/SimulationElement/SimulationElementTest.cpp
+++ b/Tests/UnitTests/Core/SimulationElement/SimulationElementTest.cpp
@@ -1,8 +1,8 @@
-#include "SimulationElement.h"
-#include "Bin.h"
-#include "SphericalDetector.h"
-#include "Units.h"
-#include "google_test.h"
+#include "Core/SimulationElement/SimulationElement.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 namespace
diff --git a/Tests/UnitTests/Fit/AttLimitsTest.cpp b/Tests/UnitTests/Fit/AttLimitsTest.cpp
index fcd4d19aeb058d8904f8e264071a290413bb9af9..258ca2e4d1e92f77145850935758f6695158d307 100644
--- a/Tests/UnitTests/Fit/AttLimitsTest.cpp
+++ b/Tests/UnitTests/Fit/AttLimitsTest.cpp
@@ -1,5 +1,5 @@
-#include "AttLimits.h"
-#include "google_test.h"
+#include "Fit/Tools/AttLimits.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class AttLimitsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/Fit/MinimizerOptionsTest.cpp b/Tests/UnitTests/Fit/MinimizerOptionsTest.cpp
index ae4b42431890b038adf57085e14bebc5ddaac3e9..894a4798fd980253b4f5e6ee2125733f42a66702 100644
--- a/Tests/UnitTests/Fit/MinimizerOptionsTest.cpp
+++ b/Tests/UnitTests/Fit/MinimizerOptionsTest.cpp
@@ -1,5 +1,5 @@
-#include "MinimizerOptions.h"
-#include "google_test.h"
+#include "Fit/Minimizer/MinimizerOptions.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <exception>
 
 class MinimizerOptionsTest : public ::testing::Test
diff --git a/Tests/UnitTests/Fit/MultiOptionTest.cpp b/Tests/UnitTests/Fit/MultiOptionTest.cpp
index 0ae01350e7d71e0d016f901045076cec1e85e601..512ea8ada420e06d19d9db708dde5ffb1e74b097 100644
--- a/Tests/UnitTests/Fit/MultiOptionTest.cpp
+++ b/Tests/UnitTests/Fit/MultiOptionTest.cpp
@@ -1,5 +1,5 @@
-#include "MultiOption.h"
-#include "google_test.h"
+#include "Fit/Tools/MultiOption.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <string>
 
 class MultiOptionTest : public ::testing::Test
diff --git a/Tests/UnitTests/Fit/OptionContainerTest.cpp b/Tests/UnitTests/Fit/OptionContainerTest.cpp
index 6bf4a9f7558bc3bcae9af98e7b18d07866b4bab8..b5ae8adf1f0d51809bb81f9f322caacc205949dc 100644
--- a/Tests/UnitTests/Fit/OptionContainerTest.cpp
+++ b/Tests/UnitTests/Fit/OptionContainerTest.cpp
@@ -1,5 +1,5 @@
-#include "OptionContainer.h"
-#include "google_test.h"
+#include "Fit/Tools/OptionContainer.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <exception>
 
 class OptionContainerTest : public ::testing::Test
diff --git a/Tests/UnitTests/Fit/ParameterTest.cpp b/Tests/UnitTests/Fit/ParameterTest.cpp
index 68d78bb82a0f9cba51c0865e607fb323bf7ce001..a95a719cf55046be3abbf788e5259bf6f562d7e9 100644
--- a/Tests/UnitTests/Fit/ParameterTest.cpp
+++ b/Tests/UnitTests/Fit/ParameterTest.cpp
@@ -1,5 +1,5 @@
-#include "Parameter.h"
-#include "google_test.h"
+#include "Fit/Kernel/Parameter.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <string>
 
 class ParameterTest : public ::testing::Test
diff --git a/Tests/UnitTests/Fit/ParametersTest.cpp b/Tests/UnitTests/Fit/ParametersTest.cpp
index 640450b88127c094c694637016bde5166f6e101a..c608dbce31424e4eac65222f52bb976a97001d7e 100644
--- a/Tests/UnitTests/Fit/ParametersTest.cpp
+++ b/Tests/UnitTests/Fit/ParametersTest.cpp
@@ -1,5 +1,5 @@
-#include "Parameters.h"
-#include "google_test.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <string>
 
 class ParametersTest : public ::testing::Test
diff --git a/Tests/UnitTests/Fit/RealLimitsTest.cpp b/Tests/UnitTests/Fit/RealLimitsTest.cpp
index e49b331c6aee74eaf7739853c391728e93592406..37efb8f39546fb2270188cde97cacb5ea5b5ff59 100644
--- a/Tests/UnitTests/Fit/RealLimitsTest.cpp
+++ b/Tests/UnitTests/Fit/RealLimitsTest.cpp
@@ -1,5 +1,5 @@
-#include "RealLimits.h"
-#include "google_test.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <limits>
 
 class RealLimitsTest : public ::testing::Test
diff --git a/Tests/UnitTests/Fit/StringUtilsTest.cpp b/Tests/UnitTests/Fit/StringUtilsTest.cpp
index 1930105c769eeea7e07bc1193f7e51b00aa83a7d..adee13d3aa259bc9f244af59a66f0580489bf7a8 100644
--- a/Tests/UnitTests/Fit/StringUtilsTest.cpp
+++ b/Tests/UnitTests/Fit/StringUtilsTest.cpp
@@ -1,5 +1,5 @@
-#include "StringUtils.h"
-#include "google_test.h"
+#include "Fit/Tools/StringUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class StringUtilsTest : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/Comparators.cpp b/Tests/UnitTests/GUI/Comparators.cpp
index be8de9baf30b3b832048073a3a711ecfe23687aa..053004986b9a784c9f91554ee5c02213b5dfa4aa 100644
--- a/Tests/UnitTests/GUI/Comparators.cpp
+++ b/Tests/UnitTests/GUI/Comparators.cpp
@@ -1,6 +1,6 @@
-#include "Comparators.h"
-#include "ComboProperty.h"
-#include "ExternalProperty.h"
+#include "Tests/UnitTests/GUI/Comparators.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
 #include <QMetaType>
 
 bool Comparators::m_is_registered = false;
diff --git a/Tests/UnitTests/GUI/TestAxesItems.cpp b/Tests/UnitTests/GUI/TestAxesItems.cpp
index 009912b1c9384880a2718100a797409c2484a9e1..b6b726748876f009c113ce0c60308452c7c09bc0 100644
--- a/Tests/UnitTests/GUI/TestAxesItems.cpp
+++ b/Tests/UnitTests/GUI/TestAxesItems.cpp
@@ -1,11 +1,11 @@
-#include "AxesItems.h"
-#include "FixedBinAxis.h"
-#include "GUIHelpers.h"
-#include "PropertyItem.h"
-#include "TransformFromDomain.h"
-#include "Units.h"
-#include "VariableBinAxis.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/PropertyItem.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestAxesItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestComboProperty.cpp b/Tests/UnitTests/GUI/TestComboProperty.cpp
index a1c6c5103b3139b581314d5e0a7e30c646d1401e..2006a3860255e16f7cecdee94b19c4cb8be40259 100644
--- a/Tests/UnitTests/GUI/TestComboProperty.cpp
+++ b/Tests/UnitTests/GUI/TestComboProperty.cpp
@@ -1,7 +1,7 @@
-#include "ComboProperty.h"
-#include "Comparators.h"
-#include "google_test.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "Tests/UnitTests/GUI/Comparators.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 
 class TestComboProperty : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestComponentProxyModel.cpp b/Tests/UnitTests/GUI/TestComponentProxyModel.cpp
index 81e560d1f002d528c66c1117c0c2cd492aaf827a..304359d3faa5fab4d23a4c57b1aa5e8b0599fc48 100644
--- a/Tests/UnitTests/GUI/TestComponentProxyModel.cpp
+++ b/Tests/UnitTests/GUI/TestComponentProxyModel.cpp
@@ -1,16 +1,16 @@
-#include "ComboProperty.h"
-#include "ComponentProxyModel.h"
-#include "ComponentProxyStrategy.h"
-#include "FormFactorItems.h"
-#include "GroupItem.h"
-#include "ModelUtils.h"
-#include "ParticleItem.h"
-#include "ProxyModelStrategy.h"
-#include "SessionModel.h"
-#include "VectorItem.h"
-#include "google_test.h"
-#include "item_constants.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/ComponentProxyModel.h"
+#include "GUI/coregui/Models/ComponentProxyStrategy.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ProxyModelStrategy.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 #include <QDebug>
 #include <QSignalSpy>
 
diff --git a/Tests/UnitTests/GUI/TestComponentUtils.cpp b/Tests/UnitTests/GUI/TestComponentUtils.cpp
index eaa23a0129a7a04f0f9507be20ab413e12bd249c..66f91006979cc6d02e3a7c22e1578fd7b7005d9f 100644
--- a/Tests/UnitTests/GUI/TestComponentUtils.cpp
+++ b/Tests/UnitTests/GUI/TestComponentUtils.cpp
@@ -1,10 +1,10 @@
-#include "ComponentUtils.h"
-#include "FormFactorItems.h"
-#include "ParticleItem.h"
-#include "SessionItem.h"
-#include "SessionModel.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Views/PropertyEditor/ComponentUtils.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QDebug>
 
 class TestComponentUtils : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp
index 2790d92d44215f542668a9c9a76b9ad6652f9961..f05f4eb1e51d52b4f85347e2b05a5c90f24ac657 100644
--- a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp
+++ b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp
@@ -1,11 +1,11 @@
-#include "ArrayUtils.h"
-#include "AxisNames.h"
-#include "CsvImportAssistant.h"
-#include "JobItemUtils.h"
-#include "OutputDataReadFactory.h"
-#include "OutputDataWriteFactory.h"
-#include "SpecularDataItem.h"
-#include "google_test.h"
+#include "Core/Instrument/ArrayUtils.h"
+#include "Core/Instrument/AxisNames.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "Core/InputOutput/OutputDataReadFactory.h"
+#include "Core/InputOutput/OutputDataWriteFactory.h"
+#include "GUI/coregui/Models/SpecularDataItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <vector>
 
 class TestCsvImportAssistant : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestCsvImportData.cpp b/Tests/UnitTests/GUI/TestCsvImportData.cpp
index dda466ad48b5aebfab5c722c721adf78b52bce07..d08427910aff603de86d8e08d4a21629e2a9316f 100644
--- a/Tests/UnitTests/GUI/TestCsvImportData.cpp
+++ b/Tests/UnitTests/GUI/TestCsvImportData.cpp
@@ -1,5 +1,5 @@
-#include "CsvImportTable.h"
-#include "google_test.h"
+#include "GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestCsvImportData : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestDataItemViews.cpp b/Tests/UnitTests/GUI/TestDataItemViews.cpp
index 82807da0ea7a185f35d970d22a7cde9e6267de77..6e33290850ee46d8ed222a6c3963e29416a7669c 100644
--- a/Tests/UnitTests/GUI/TestDataItemViews.cpp
+++ b/Tests/UnitTests/GUI/TestDataItemViews.cpp
@@ -1,15 +1,15 @@
-#include "ApplicationModels.h"
-#include "ComboProperty.h"
-#include "DataItem.h"
-#include "DataProperties.h"
-#include "DataPropertyContainer.h"
-#include "GUIHelpers.h"
-#include "MessageService.h"
-#include "RealDataModel.h"
-#include "SessionModel.h"
-#include "google_test.h"
-#include "projectdocument.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/DataProperties.h"
+#include "GUI/coregui/Models/DataPropertyContainer.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 
 class TestDataItemViews : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestDataItems.cpp b/Tests/UnitTests/GUI/TestDataItems.cpp
index f4040303ad4af9f2003c14db949b36c18a10c44a..d5d4e793f58d1c4049e96a0057111fccb728a440 100644
--- a/Tests/UnitTests/GUI/TestDataItems.cpp
+++ b/Tests/UnitTests/GUI/TestDataItems.cpp
@@ -1,6 +1,6 @@
-#include "DataItem.h"
-#include "SessionModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QTest>
 
 class TestDataItems : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestDetectorItems.cpp b/Tests/UnitTests/GUI/TestDetectorItems.cpp
index 7c51a35d30e5c0fe851eb2c0e874263a49a26814..36395282838ca27f41548a91531341717e26fd16 100644
--- a/Tests/UnitTests/GUI/TestDetectorItems.cpp
+++ b/Tests/UnitTests/GUI/TestDetectorItems.cpp
@@ -1,13 +1,13 @@
-#include "ComboProperty.h"
-#include "ConvolutionDetectorResolution.h"
-#include "DetectorItems.h"
-#include "IDetector2D.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "RectangularDetectorItem.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "Units.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "Core/Instrument/ConvolutionDetectorResolution.h"
+#include "GUI/coregui/Models/DetectorItems.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestDetectorItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestExternalProperty.cpp b/Tests/UnitTests/GUI/TestExternalProperty.cpp
index fe332e7a0afb1e7b0ab432ad5612a5fa3f4fc4f1..b90467b33ceda7fe607b8e2c589b7ad608fd52e2 100644
--- a/Tests/UnitTests/GUI/TestExternalProperty.cpp
+++ b/Tests/UnitTests/GUI/TestExternalProperty.cpp
@@ -1,7 +1,7 @@
-#include "Comparators.h"
-#include "ExternalProperty.h"
-#include "google_test.h"
-#include "test_utils.h"
+#include "Tests/UnitTests/GUI/Comparators.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 
 class TestExternalProperty : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestFTDistributionItems.cpp b/Tests/UnitTests/GUI/TestFTDistributionItems.cpp
index 98a169deb1782ddb7df2ec990d690bcca9891ac6..6703ae7572b7ca9340d2d6cfae719c07c46d3d77 100644
--- a/Tests/UnitTests/GUI/TestFTDistributionItems.cpp
+++ b/Tests/UnitTests/GUI/TestFTDistributionItems.cpp
@@ -1,6 +1,6 @@
-#include "FTDistributionItems.h"
-#include "FTDistributions1D.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestFTDistributionItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestFitParameterModel.cpp b/Tests/UnitTests/GUI/TestFitParameterModel.cpp
index a441b9b668dd1d64ed9f5eebbce6091cc92e16a2..f68fcec34806e230320d0d77519b26c4406d928f 100644
--- a/Tests/UnitTests/GUI/TestFitParameterModel.cpp
+++ b/Tests/UnitTests/GUI/TestFitParameterModel.cpp
@@ -1,8 +1,8 @@
-#include "FitParameterItems.h"
-#include "FitParameterProxyModel.h"
-#include "FitSuiteItem.h"
-#include "JobModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/FitParameterItems.h"
+#include "GUI/coregui/Models/FitParameterProxyModel.h"
+#include "GUI/coregui/Models/FitSuiteItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestFitParameterModel : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestFormFactorItems.cpp b/Tests/UnitTests/GUI/TestFormFactorItems.cpp
index f47f45111e44a888376dca3f5df0adbaeb873086..d8e95b76ed8fa1e5fc5f070305ef2231ae024177 100644
--- a/Tests/UnitTests/GUI/TestFormFactorItems.cpp
+++ b/Tests/UnitTests/GUI/TestFormFactorItems.cpp
@@ -1,8 +1,8 @@
-#include "FormFactorItems.h"
-#include "FormFactors.h"
-#include "Numeric.h"
-#include "Units.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "Core/Tools/Numeric.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestFormFactorItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestGUI.cpp b/Tests/UnitTests/GUI/TestGUI.cpp
index 3275e87766de20c45ce433bbcb06830ec964df6e..2ae94a873cde6d6e3499d0d5bb7c85efdc963f5e 100644
--- a/Tests/UnitTests/GUI/TestGUI.cpp
+++ b/Tests/UnitTests/GUI/TestGUI.cpp
@@ -1,5 +1,5 @@
-#include "Comparators.h"
-#include "google_test.h"
+#include "Tests/UnitTests/GUI/Comparators.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QAbstractItemModel>
 #include <QCoreApplication>
 
diff --git a/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp b/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp
index d9a153641fa18f19087fae0167113b416db76587..9a849b6ab37a19c7004ea5af3e9feed665203ff0 100644
--- a/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp
+++ b/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp
@@ -1,10 +1,10 @@
-#include "FormFactorItems.h"
-#include "FormFactors.h"
-#include "InterferenceFunctionItems.h"
-#include "InterferenceFunctions.h"
-#include "ParameterPool.h"
-#include "Units.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "Core/includeIncludes/InterferenceFunctions.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestGUICoreObjectCorrespondence : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestGUIHelpers.cpp b/Tests/UnitTests/GUI/TestGUIHelpers.cpp
index 0afbeaf1d888f6d5c36d8e3b95bd4acdf3a42ff7..40574ee42f0098632ca0a8cab2ece7743f0ef99d 100644
--- a/Tests/UnitTests/GUI/TestGUIHelpers.cpp
+++ b/Tests/UnitTests/GUI/TestGUIHelpers.cpp
@@ -1,5 +1,5 @@
-#include "GUIHelpers.h"
-#include "google_test.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestGUIHelpers : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestGroupItem.cpp b/Tests/UnitTests/GUI/TestGroupItem.cpp
index e4bcd7bd0a29b9200dd4231cc1b2bf151f6d5d00..876f00168e5a3a2be82e7e515da2cfb8efddeef0 100644
--- a/Tests/UnitTests/GUI/TestGroupItem.cpp
+++ b/Tests/UnitTests/GUI/TestGroupItem.cpp
@@ -1,11 +1,11 @@
-#include "ComboProperty.h"
-#include "GUIHelpers.h"
-#include "GroupInfo.h"
-#include "GroupItem.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
-#include "google_test.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupInfo.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 
 class TestGroupItem : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestLayerItems.cpp b/Tests/UnitTests/GUI/TestLayerItems.cpp
index e3b1050dc7a19aa298e091dce32e83f5a782e553..a45045b78ce986231c248bcabfe5e48591a4374c 100644
--- a/Tests/UnitTests/GUI/TestLayerItems.cpp
+++ b/Tests/UnitTests/GUI/TestLayerItems.cpp
@@ -1,11 +1,11 @@
-#include "ApplicationModels.h"
-#include "ExternalProperty.h"
-#include "LayerItem.h"
-#include "MaterialItem.h"
-#include "MaterialModel.h"
-#include "ModelMapper.h"
-#include "SampleModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/ModelMapper.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestLayerItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestLayerRoughnessItems.cpp b/Tests/UnitTests/GUI/TestLayerRoughnessItems.cpp
index 0479a8dc091baaf4c72375d1de91be1db734b317..5106ad519194f39a31e926829e2ea9e5af4c9006 100644
--- a/Tests/UnitTests/GUI/TestLayerRoughnessItems.cpp
+++ b/Tests/UnitTests/GUI/TestLayerRoughnessItems.cpp
@@ -1,8 +1,8 @@
-#include "LayerRoughness.h"
-#include "LayerRoughnessItems.h"
-#include "TransformFromDomain.h"
-#include "TransformToDomain.h"
-#include "google_test.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "GUI/coregui/Models/LayerRoughnessItems.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "GUI/coregui/Models/TransformToDomain.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestLayerRoughnessItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestLinkInstrument.cpp b/Tests/UnitTests/GUI/TestLinkInstrument.cpp
index 7b4690fdbf8f9cbe32b72f66d4dcdaeaa033fbc2..d613cecd77c1c0bf0723622f10d0fba06ed132e8 100644
--- a/Tests/UnitTests/GUI/TestLinkInstrument.cpp
+++ b/Tests/UnitTests/GUI/TestLinkInstrument.cpp
@@ -1,14 +1,14 @@
-#include "AxesItems.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataItem.h"
-#include "JobItemUtils.h"
-#include "LinkInstrumentManager.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "RectangularDetectorItem.h"
-#include "google_test.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/Models/RectangularDetectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 #include <QSignalSpy>
 #include <QTest>
 
diff --git a/Tests/UnitTests/GUI/TestMapperCases.cpp b/Tests/UnitTests/GUI/TestMapperCases.cpp
index 817211aec5a886e49c7ca6e7dc52be459d8cfda0..f05279c3583bfcf2938153cc684464a9e0f77ed0 100644
--- a/Tests/UnitTests/GUI/TestMapperCases.cpp
+++ b/Tests/UnitTests/GUI/TestMapperCases.cpp
@@ -1,11 +1,11 @@
-#include "ComboProperty.h"
-#include "DocumentModel.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "SampleModel.h"
-#include "SessionItemUtils.h"
-#include "SimulationOptionsItem.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DocumentModel.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SimulationOptionsItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QtTest>
 
 using SessionItemUtils::ParentRow;
diff --git a/Tests/UnitTests/GUI/TestMapperForItem.cpp b/Tests/UnitTests/GUI/TestMapperForItem.cpp
index b129a0ec7086ee7e4707198239570c746b1681aa..89db903b151ae91a68250ef55030fea11421002c 100644
--- a/Tests/UnitTests/GUI/TestMapperForItem.cpp
+++ b/Tests/UnitTests/GUI/TestMapperForItem.cpp
@@ -1,10 +1,10 @@
-#include "LayerItem.h"
-#include "MultiLayerItem.h"
-#include "SampleModel.h"
-#include "SessionItem.h"
-#include "SessionItemUtils.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <memory>
 
 using SessionItemUtils::ParentRow;
diff --git a/Tests/UnitTests/GUI/TestMaterialModel.cpp b/Tests/UnitTests/GUI/TestMaterialModel.cpp
index 71eadbf72f6e8aa40aa3d8be6dfb502d3b65c60c..c62ff58279b5759bb74cbcfde00b4298fdb72d2b 100644
--- a/Tests/UnitTests/GUI/TestMaterialModel.cpp
+++ b/Tests/UnitTests/GUI/TestMaterialModel.cpp
@@ -1,8 +1,8 @@
-#include "MaterialDataItems.h"
-#include "MaterialItem.h"
-#include "MaterialItemUtils.h"
-#include "MaterialModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/MaterialDataItems.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <memory>
 
 class TestMaterialModel : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp b/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp
index 78a5dea00d7ede02a7dee17b08b6611400566f45..689a3a7b46dcc2a3214f236c8afd2dc4408dcaf4 100644
--- a/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp
+++ b/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp
@@ -1,11 +1,11 @@
-#include "ExternalProperty.h"
-#include "LayerItem.h"
-#include "MaterialItem.h"
-#include "MaterialItemUtils.h"
-#include "MaterialModel.h"
-#include "MaterialPropertyController.h"
-#include "SampleModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MaterialItem.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/MaterialPropertyController.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QtTest>
 
 class TestMaterialPropertyController : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestMessageService.cpp b/Tests/UnitTests/GUI/TestMessageService.cpp
index 25c8a6ab4726982855e8a62a7ed90ad4bcadab2a..ef55e4ac6acf116f57c38568e23546a33bc03d80 100644
--- a/Tests/UnitTests/GUI/TestMessageService.cpp
+++ b/Tests/UnitTests/GUI/TestMessageService.cpp
@@ -1,8 +1,8 @@
-#include "GUIHelpers.h"
-#include "GUIMessage.h"
-#include "MessageService.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/GUIMessage.h"
+#include "GUI/coregui/utils/MessageService.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QObject>
 #include <QString>
 
diff --git a/Tests/UnitTests/GUI/TestModelUtils.cpp b/Tests/UnitTests/GUI/TestModelUtils.cpp
index 2398cdb32d706632005df09238eb4cb81773b0c1..b0d3d8e422fc7795b6395eb15c0a55af6f98c1cf 100644
--- a/Tests/UnitTests/GUI/TestModelUtils.cpp
+++ b/Tests/UnitTests/GUI/TestModelUtils.cpp
@@ -1,9 +1,9 @@
-#include "LayerItem.h"
-#include "ModelUtils.h"
-#include "SessionModel.h"
-#include "VectorItem.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 #include <QVector>
 
 class TestModelUtils : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestMultiLayerItem.cpp b/Tests/UnitTests/GUI/TestMultiLayerItem.cpp
index 3570615e7810b023c46788c91bc4e5c81d1dcb24..11d5d0dbfde3e3e5d59ede557282833ba28a2978 100644
--- a/Tests/UnitTests/GUI/TestMultiLayerItem.cpp
+++ b/Tests/UnitTests/GUI/TestMultiLayerItem.cpp
@@ -1,8 +1,8 @@
-#include "LayerItem.h"
-#include "MultiLayerItem.h"
-#include "SampleModel.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/MultiLayerItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 class TestMultiLayerItem : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestOutputDataIOService.cpp b/Tests/UnitTests/GUI/TestOutputDataIOService.cpp
index 11f98c564275cb752ff5aa4cb38b224cffc5408f..13983da7f5b2870325474960a5a6531ec91ad988 100644
--- a/Tests/UnitTests/GUI/TestOutputDataIOService.cpp
+++ b/Tests/UnitTests/GUI/TestOutputDataIOService.cpp
@@ -1,20 +1,20 @@
-#include "ApplicationModels.h"
-#include "DataItem.h"
-#include "GUIHelpers.h"
-#include "ImportDataInfo.h"
-#include "IntensityDataIOFactory.h"
-#include "JobItem.h"
-#include "JobItemUtils.h"
-#include "JobModel.h"
-#include "JobModelFunctions.h"
-#include "OutputData.h"
-#include "OutputDataIOHistory.h"
-#include "OutputDataIOService.h"
-#include "ProjectUtils.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "google_test.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/utils/ImportDataInfo.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/JobModelFunctions.h"
+#include "Core/Instrument/OutputData.h"
+#include "GUI/coregui/mainwindow/OutputDataIOHistory.h"
+#include "GUI/coregui/mainwindow/OutputDataIOService.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 #include <QTest>
 #include <memory>
 
diff --git a/Tests/UnitTests/GUI/TestParaCrystalItems.cpp b/Tests/UnitTests/GUI/TestParaCrystalItems.cpp
index 118e079b08cdf9db21ec7a27a7e55842cbde4b41..1b28b1291958c1909247d1e85cda3264744c8897 100644
--- a/Tests/UnitTests/GUI/TestParaCrystalItems.cpp
+++ b/Tests/UnitTests/GUI/TestParaCrystalItems.cpp
@@ -1,15 +1,15 @@
-#include "FTDistributionItems.h"
-#include "FTDistributions2D.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "InterferenceFunctionItems.h"
-#include "Lattice2D.h"
-#include "Lattice2DItems.h"
-#include "ParticleLayoutItem.h"
-#include "SampleModel.h"
-#include "TransformFromDomain.h"
-#include "Units.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/FTDistributionItems.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "Core/Parametrization/Units.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 class TestParaCrystalItems : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp b/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp
index 2c1882b262eed2206e04f8d68d4b9ca3c6ecaf9f..0e6ccd9ed7eb4cb33628bbb3250b6a5c39ce4544 100644
--- a/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp
+++ b/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp
@@ -1,11 +1,11 @@
-#include "FormFactorItems.h"
-#include "LayerItem.h"
-#include "ParameterTreeItems.h"
-#include "ParameterTreeUtils.h"
-#include "ParticleItem.h"
-#include "SampleModel.h"
-#include "VectorItem.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Models/LayerItem.h"
+#include "GUI/coregui/Models/ParameterTreeItems.h"
+#include "GUI/coregui/Models/ParameterTreeUtils.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 namespace
 {
diff --git a/Tests/UnitTests/GUI/TestParticleCoreShell.cpp b/Tests/UnitTests/GUI/TestParticleCoreShell.cpp
index c711239868b484455d23acb613d0ee9c3751ee3d..d70dc544dc1f06e2ec0b209bce890fcfeb32644b 100644
--- a/Tests/UnitTests/GUI/TestParticleCoreShell.cpp
+++ b/Tests/UnitTests/GUI/TestParticleCoreShell.cpp
@@ -1,11 +1,11 @@
-#include "ParticleCompositionItem.h"
-#include "ParticleCoreShellItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "SampleModel.h"
-#include "SessionItemUtils.h"
-#include "VectorItem.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleCoreShellItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QtTest>
 
 using namespace SessionItemUtils;
diff --git a/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp b/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp
index 4368c5af1a1b5746575c7b25aeb9906da4e7ad45..ae2aefe7821d0e52b68fab0732e7a05580d2c73f 100644
--- a/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp
+++ b/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp
@@ -1,18 +1,18 @@
-#include "ComboProperty.h"
-#include "DistributionItems.h"
-#include "Distributions.h"
-#include "FormFactors.h"
-#include "MaterialEditor.h"
-#include "MaterialFactoryFuncs.h"
-#include "MaterialModel.h"
-#include "Particle.h"
-#include "ParticleDistribution.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "RealLimitsItems.h"
-#include "SampleModel.h"
-#include "TransformFromDomain.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Models/DistributionItems.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/includeIncludes/FormFactors.h"
+#include "GUI/coregui/Views/MaterialEditor/MaterialEditor.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/RealLimitsItems.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/TransformFromDomain.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QXmlStreamWriter>
 
 namespace
diff --git a/Tests/UnitTests/GUI/TestParticleItem.cpp b/Tests/UnitTests/GUI/TestParticleItem.cpp
index c4031858acfaba80d4b666dd95303339f2bcf2e3..3dac3f652984c924326af2ccde43fa0d031baf4f 100644
--- a/Tests/UnitTests/GUI/TestParticleItem.cpp
+++ b/Tests/UnitTests/GUI/TestParticleItem.cpp
@@ -1,11 +1,11 @@
-#include "GroupItem.h"
-#include "ParticleCompositionItem.h"
-#include "ParticleDistributionItem.h"
-#include "ParticleItem.h"
-#include "SampleModel.h"
-#include "SessionItem.h"
-#include "SessionItemUtils.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/ParticleCompositionItem.h"
+#include "GUI/coregui/Models/ParticleDistributionItem.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 using namespace SessionItemUtils;
 
diff --git a/Tests/UnitTests/GUI/TestParticleLayoutItem.h b/Tests/UnitTests/GUI/TestParticleLayoutItem.h
index ea8cc365ed0c28d12b3d03fbbab872a80d7039f4..5f5483f4fb0c75da9b378c5a55fb080b56ad59d6 100644
--- a/Tests/UnitTests/GUI/TestParticleLayoutItem.h
+++ b/Tests/UnitTests/GUI/TestParticleLayoutItem.h
@@ -1,10 +1,10 @@
-#include "InterferenceFunctionItems.h"
-#include "Lattice2DItems.h"
-#include "MathConstants.h"
-#include "ParticleLayoutItem.h"
-#include "SampleModel.h"
-#include "SessionItemUtils.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/InterferenceFunctionItems.h"
+#include "GUI/coregui/Models/Lattice2DItems.h"
+#include "Core/Basics/MathConstants.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestParticleLayoutItem : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestProjectDocument.cpp b/Tests/UnitTests/GUI/TestProjectDocument.cpp
index 50b7e608e6692f065ec4ab447afb0ad982b89719..35a9a2dbb20ee1e8a14834da1a2f99e03b2376c8 100644
--- a/Tests/UnitTests/GUI/TestProjectDocument.cpp
+++ b/Tests/UnitTests/GUI/TestProjectDocument.cpp
@@ -1,15 +1,15 @@
-#include "ApplicationModels.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataItem.h"
-#include "JobItemUtils.h"
-#include "ProjectUtils.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "google_test.h"
-#include "projectdocument.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 #include <QFileInfo>
 #include <QSignalSpy>
 
diff --git a/Tests/UnitTests/GUI/TestProjectUtils.cpp b/Tests/UnitTests/GUI/TestProjectUtils.cpp
index e4b1c6d6836d2e5ffc24c4515198ecc4d146cc18..0570af55a3e1a6f72883da4f315ff1f4f44a2dea 100644
--- a/Tests/UnitTests/GUI/TestProjectUtils.cpp
+++ b/Tests/UnitTests/GUI/TestProjectUtils.cpp
@@ -1,6 +1,6 @@
-#include "GUIHelpers.h"
-#include "ProjectUtils.h"
-#include "google_test.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QDir>
 #include <QFile>
 #include <QTextStream>
diff --git a/Tests/UnitTests/GUI/TestPropertyRepeater.cpp b/Tests/UnitTests/GUI/TestPropertyRepeater.cpp
index e27f451c8789e13c64b03c878f331de1de299441..3d7067ca0985b754f37f93220276a70feae2162f 100644
--- a/Tests/UnitTests/GUI/TestPropertyRepeater.cpp
+++ b/Tests/UnitTests/GUI/TestPropertyRepeater.cpp
@@ -1,9 +1,9 @@
-#include "AxesItems.h"
-#include "IntensityDataItem.h"
-#include "PropertyRepeater.h"
-#include "SessionModel.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Views/IntensityDataWidgets/PropertyRepeater.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 namespace
 {
diff --git a/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp b/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp
index 3242391691c5a9f235ca6cda8e67ac9bf53b27e9..047725dfc8a3d8f6c006f0ad2dfd51b03679c87c 100644
--- a/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp
+++ b/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp
@@ -1,13 +1,13 @@
-#include "ComponentProxyModel.h"
-#include "ComponentProxyStrategy.h"
-#include "FormFactorItems.h"
-#include "ModelUtils.h"
-#include "ParticleItem.h"
-#include "ProxyModelStrategy.h"
-#include "SessionModel.h"
-#include "VectorItem.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/ComponentProxyModel.h"
+#include "GUI/coregui/Models/ComponentProxyStrategy.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Models/ModelUtils.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ProxyModelStrategy.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 class TestProxyModelStrategy : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestRealSpaceBuilderUtils.cpp b/Tests/UnitTests/GUI/TestRealSpaceBuilderUtils.cpp
index 966201341d60e9114e79d097945a9fc39f9c565d..196d8f4fc0287300a294f9d0e40aa5e447681e0a 100644
--- a/Tests/UnitTests/GUI/TestRealSpaceBuilderUtils.cpp
+++ b/Tests/UnitTests/GUI/TestRealSpaceBuilderUtils.cpp
@@ -3,19 +3,19 @@
 
 #ifdef BORNAGAIN_OPENGL
 
-#include "ApplicationModels.h"
-#include "IFormFactor.h"
-#include "IFormFactorDecorator.h"
-#include "Particle.h"
-#include "Particle3DContainer.h"
-#include "ParticleItem.h"
-#include "ParticleLayoutItem.h"
-#include "RealSpaceBuilder.h"
-#include "RealSpaceBuilderUtils.h"
-#include "RealSpaceModel.h"
-#include "SampleModel.h"
-#include "TransformTo3D.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "Core/Scattering/IFormFactor.h"
+#include "Core/DecoratedFormFactor/IFormFactorDecorator.h"
+#include "Core/Particle/Particle.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/Particle3DContainer.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/ParticleLayoutItem.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceModel.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QObject>
 
 class TestRealSpaceBuilderUtils : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestSaveService.cpp b/Tests/UnitTests/GUI/TestSaveService.cpp
index fc8f1a3976067534d1c3b731a56645ee837e0bac..75642d3f797bc9cb1d079b86155ccb924bf10206 100644
--- a/Tests/UnitTests/GUI/TestSaveService.cpp
+++ b/Tests/UnitTests/GUI/TestSaveService.cpp
@@ -1,17 +1,17 @@
-#include "ApplicationModels.h"
-#include "AutosaveController.h"
-#include "GUIHelpers.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataItem.h"
-#include "JobItemUtils.h"
-#include "ProjectUtils.h"
-#include "RealDataItem.h"
-#include "RealDataModel.h"
-#include "SaveService.h"
-#include "google_test.h"
-#include "projectdocument.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/mainwindow/AutosaveController.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/IntensityDataItem.h"
+#include "GUI/coregui/Models/JobItemUtils.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/RealDataModel.h"
+#include "GUI/coregui/mainwindow/SaveService.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/mainwindow/projectdocument.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 #include <QSignalSpy>
 
 class TestSaveService : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestSavingSpecularData.cpp b/Tests/UnitTests/GUI/TestSavingSpecularData.cpp
index ec2ed0ff8f194c5047a97bb402dce3f6c2ef123f..d6def27f626ab1fa4ad5dfd46768a0fe2e5f598c 100644
--- a/Tests/UnitTests/GUI/TestSavingSpecularData.cpp
+++ b/Tests/UnitTests/GUI/TestSavingSpecularData.cpp
@@ -1,22 +1,22 @@
-#include "ApplicationModels.h"
-#include "DataItem.h"
-#include "GUIHelpers.h"
-#include "GroupItem.h"
-#include "InstrumentItems.h"
-#include "InstrumentModel.h"
-#include "IntensityDataIOFactory.h"
-#include "ItemFileNameUtils.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "JobModelFunctions.h"
-#include "OutputData.h"
-#include "OutputDataIOService.h"
-#include "PointwiseAxis.h"
-#include "PointwiseAxisItem.h"
-#include "ProjectUtils.h"
-#include "SpecularBeamInclinationItem.h"
-#include "google_test.h"
-#include "test_utils.h"
+#include "GUI/coregui/Models/ApplicationModels.h"
+#include "GUI/coregui/Models/DataItem.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/GroupItem.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "GUI/coregui/Models/ItemFileNameUtils.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/JobModelFunctions.h"
+#include "Core/Instrument/OutputData.h"
+#include "GUI/coregui/mainwindow/OutputDataIOService.h"
+#include "Core/Binning/PointwiseAxis.h"
+#include "GUI/coregui/Models/PointwiseAxisItem.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Models/SpecularBeamInclinationItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
 #include <QTest>
 
 class TestSavingSpecularData : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestScientificSpinBox.cpp b/Tests/UnitTests/GUI/TestScientificSpinBox.cpp
index 92016fac8dd55b3d7ca39baeea9f0db2690421b5..dfb573c39f8a19d0ac7e51ab2c273e93d3c06354 100644
--- a/Tests/UnitTests/GUI/TestScientificSpinBox.cpp
+++ b/Tests/UnitTests/GUI/TestScientificSpinBox.cpp
@@ -1,5 +1,5 @@
-#include "ScientificSpinBox.h"
-#include "google_test.h"
+#include "GUI/coregui/Views/JobWidgets/ScientificSpinBox.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <limits>
 
 class TestScientificSpinBox : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestSessionItem.cpp b/Tests/UnitTests/GUI/TestSessionItem.cpp
index 24e01705f58bd90e8ea6d89ce5a7249bd07b4f82..9bd26e9574ad6426480cfd39e042b96141107547 100644
--- a/Tests/UnitTests/GUI/TestSessionItem.cpp
+++ b/Tests/UnitTests/GUI/TestSessionItem.cpp
@@ -1,7 +1,7 @@
-#include "GUIHelpers.h"
-#include "SessionItem.h"
-#include "SessionModel.h"
-#include "google_test.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestSessionItem : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestSessionItemController.cpp b/Tests/UnitTests/GUI/TestSessionItemController.cpp
index cf87b25e9ffe58719f8c98cfc81c53cc9804af51..2064c1407624e2e4e891d5d5a949196e001f607e 100644
--- a/Tests/UnitTests/GUI/TestSessionItemController.cpp
+++ b/Tests/UnitTests/GUI/TestSessionItemController.cpp
@@ -1,8 +1,8 @@
-#include "AxesItems.h"
-#include "SessionItemController.h"
-#include "SessionModel.h"
-#include "TestSessionItemControllerHelper.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/AxesItems.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemController.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/GUI/TestSessionItemControllerHelper.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QObject>
 
 class TestSessionItemController : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/TestSessionItemControllerHelper.cpp b/Tests/UnitTests/GUI/TestSessionItemControllerHelper.cpp
index 989990e0578348e997126981eade0d151d4dbe6e..373e333e7b6312c2cf7fd1b1837aa26c717e2a3b 100644
--- a/Tests/UnitTests/GUI/TestSessionItemControllerHelper.cpp
+++ b/Tests/UnitTests/GUI/TestSessionItemControllerHelper.cpp
@@ -1,6 +1,6 @@
-#include "TestSessionItemControllerHelper.h"
-#include "SessionItem.h"
-#include "SessionItemController.h"
+#include "Tests/UnitTests/GUI/TestSessionItemControllerHelper.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Views/CommonWidgets/SessionItemController.h"
 
 TestListener::TestListener()
     : m_onItemDestroyedCount(0), m_onPropertyChangeCount(0), m_onWidgetDestroyed(0)
diff --git a/Tests/UnitTests/GUI/TestSessionItemData.cpp b/Tests/UnitTests/GUI/TestSessionItemData.cpp
index fe46648ba248c90e09d862c49263a0add8fb8faa..60ab9ecfbe1437c6d058bfdfa4c1114b6bd3b55a 100644
--- a/Tests/UnitTests/GUI/TestSessionItemData.cpp
+++ b/Tests/UnitTests/GUI/TestSessionItemData.cpp
@@ -1,7 +1,7 @@
-#include "ExternalProperty.h"
-#include "SessionFlags.h"
-#include "SessionItemData.h"
-#include "google_test.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/SessionFlags.h"
+#include "GUI/coregui/Models/SessionItemData.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestSessionItemData : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestSessionItemTags.cpp b/Tests/UnitTests/GUI/TestSessionItemTags.cpp
index a0e0f55ae50e9a841eee37bd8c266de6cfb4a376..c332944b253cbe2850b88d319621d5a4b857ce40 100644
--- a/Tests/UnitTests/GUI/TestSessionItemTags.cpp
+++ b/Tests/UnitTests/GUI/TestSessionItemTags.cpp
@@ -1,7 +1,7 @@
-#include "GUIHelpers.h"
-#include "SessionItemTags.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "GUI/coregui/Models/SessionItemTags.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 class TestSessionItemTags : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestSessionItemUtils.cpp b/Tests/UnitTests/GUI/TestSessionItemUtils.cpp
index 9b2eec6b73b483a1ae96a3fa8fabf6542daded15..11c63d50d9e7e424d4c25482d166516a89104ca7 100644
--- a/Tests/UnitTests/GUI/TestSessionItemUtils.cpp
+++ b/Tests/UnitTests/GUI/TestSessionItemUtils.cpp
@@ -1,11 +1,11 @@
-#include "ComboProperty.h"
-#include "ExternalProperty.h"
-#include "SessionItem.h"
-#include "SessionItemUtils.h"
-#include "SessionModel.h"
-#include "VectorItem.h"
-#include "google_test.h"
-#include "item_constants.h"
+#include "GUI/coregui/Models/ComboProperty.h"
+#include "GUI/coregui/Views/MaterialEditor/ExternalProperty.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionItemUtils.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
+#include "GUI/coregui/Models/item_constants.h"
 
 class TestSessionItemUtils : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestSessionModel.cpp b/Tests/UnitTests/GUI/TestSessionModel.cpp
index 74dcf6ceab40ee09da7c8a8a3d1f620d0f054342..1cd8555750c2d1f218c1821ac6a4fdbb5aab5e93 100644
--- a/Tests/UnitTests/GUI/TestSessionModel.cpp
+++ b/Tests/UnitTests/GUI/TestSessionModel.cpp
@@ -1,12 +1,12 @@
-#include "InstrumentModel.h"
-#include "JobItem.h"
-#include "JobModel.h"
-#include "MaskItems.h"
-#include "MaterialModel.h"
-#include "SampleModel.h"
-#include "SessionItemTags.h"
-#include "SessionModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/InstrumentModel.h"
+#include "GUI/coregui/Models/JobItem.h"
+#include "GUI/coregui/Models/JobModel.h"
+#include "GUI/coregui/Models/MaskItems.h"
+#include "GUI/coregui/Models/MaterialModel.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/SessionItemTags.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QSignalSpy>
 #include <QXmlStreamWriter>
 #include <memory>
diff --git a/Tests/UnitTests/GUI/TestSessionXML.cpp b/Tests/UnitTests/GUI/TestSessionXML.cpp
index a61e5f698de7b2c10a822f93fcb2ddc061b1dc71..22e3157169570ec43de1daee3db7a291ca9e50c7 100644
--- a/Tests/UnitTests/GUI/TestSessionXML.cpp
+++ b/Tests/UnitTests/GUI/TestSessionXML.cpp
@@ -1,8 +1,8 @@
-#include "FormFactorItems.h"
-#include "ParticleItem.h"
-#include "SessionItem.h"
-#include "SessionModel.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/FormFactorItems.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/SessionItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QXmlStreamReader>
 #include <QXmlStreamWriter>
 #include <memory>
diff --git a/Tests/UnitTests/GUI/TestTranslations.cpp b/Tests/UnitTests/GUI/TestTranslations.cpp
index 1ca72c802bdb1f4f705e41ea84d905ce95f13b33..354dc9f9cc9d871573db5af9ce08adbaa54fd621 100644
--- a/Tests/UnitTests/GUI/TestTranslations.cpp
+++ b/Tests/UnitTests/GUI/TestTranslations.cpp
@@ -1,14 +1,14 @@
-#include "BeamDistributionItem.h"
-#include "BeamItems.h"
-#include "DistributionItems.h"
-#include "InstrumentItems.h"
-#include "ModelPath.h"
-#include "ParticleItem.h"
-#include "RotationItems.h"
-#include "SampleModel.h"
-#include "TransformationItem.h"
-#include "VectorItem.h"
-#include "google_test.h"
+#include "GUI/coregui/Models/BeamDistributionItem.h"
+#include "GUI/coregui/Models/BeamItems.h"
+#include "GUI/coregui/Models/DistributionItems.h"
+#include "GUI/coregui/Models/InstrumentItems.h"
+#include "GUI/coregui/Models/ModelPath.h"
+#include "GUI/coregui/Models/ParticleItem.h"
+#include "GUI/coregui/Models/RotationItems.h"
+#include "GUI/coregui/Models/SampleModel.h"
+#include "GUI/coregui/Models/TransformationItem.h"
+#include "GUI/coregui/Models/VectorItem.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 class TestTranslations : public ::testing::Test
 {
diff --git a/Tests/UnitTests/GUI/TestUpdateTimer.cpp b/Tests/UnitTests/GUI/TestUpdateTimer.cpp
index 7847b9939e60c95211a8ba920e20387b2bb38373..555fdb2c48d74db16a75d894d1dca57eeec64259 100644
--- a/Tests/UnitTests/GUI/TestUpdateTimer.cpp
+++ b/Tests/UnitTests/GUI/TestUpdateTimer.cpp
@@ -1,5 +1,5 @@
-#include "UpdateTimer.h"
-#include "google_test.h"
+#include "GUI/coregui/Views/CommonWidgets/UpdateTimer.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 #include <QSignalSpy>
 
 class TestUpdateTimer : public ::testing::Test
diff --git a/Tests/UnitTests/GUI/test_utils.cpp b/Tests/UnitTests/GUI/test_utils.cpp
index 0d1a5b7bda45969eaa13c559d8155dafe84b775b..a58d0f2278d134bd3c04bc2d1404f6fdebdd69b2 100644
--- a/Tests/UnitTests/GUI/test_utils.cpp
+++ b/Tests/UnitTests/GUI/test_utils.cpp
@@ -13,14 +13,14 @@
 //
 // ************************************************************************** //
 
-#include "test_utils.h"
-#include "GUIHelpers.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataIOFactory.h"
-#include "OutputData.h"
-#include "ProjectUtils.h"
-#include "RealDataItem.h"
-#include "SessionModel.h"
+#include "Tests/UnitTests/GUI/test_utils.h"
+#include "GUI/coregui/utils/GUIHelpers.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Instrument/OutputData.h"
+#include "GUI/coregui/mainwindow/ProjectUtils.h"
+#include "GUI/coregui/Models/RealDataItem.h"
+#include "GUI/coregui/Models/SessionModel.h"
 
 namespace
 {
diff --git a/Tests/UnitTests/GUI/test_utils.h b/Tests/UnitTests/GUI/test_utils.h
index 250dc9ae11809f834d7a3a88a15a7d5813f04c0b..097247ee48706e0a10c4431c0ea91267553f2392 100644
--- a/Tests/UnitTests/GUI/test_utils.h
+++ b/Tests/UnitTests/GUI/test_utils.h
@@ -16,8 +16,8 @@
 #ifndef TEST_UTILS
 #define TEST_UTILS
 
-#include "PropertyItem.h"
-#include "SessionXML.h"
+#include "GUI/coregui/Models/PropertyItem.h"
+#include "GUI/coregui/Models/SessionXML.h"
 #include <QString>
 #include <QXmlStreamWriter>
 
diff --git a/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp b/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp
index a2a96fe3f75381a37494b93b1851e866d8782189..237810f918617d12a7f9a1fd260ea7129472c346 100644
--- a/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp
+++ b/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp
@@ -1,6 +1,6 @@
-#include "HardParticles.h"
-#include "FormFactorTest.h"
-#include "google_test.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Tests/UnitTests/Numeric/FormFactorTest.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 
 //! Compare form factor for particle shapes A and B, where A is given special
diff --git a/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp b/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp
index 9c6a75a669b1a678bb6e41476992b2d20cf922e4..e8412e55e6c7f98be8150eeacec11daa42ea0771 100644
--- a/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp
+++ b/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp
@@ -1,7 +1,7 @@
-#include "HardParticles.h"
-#include "MathConstants.h"
-#include "FormFactorTest.h"
-#include "google_test.h"
+#include "Core/includeIncludes/HardParticles.h"
+#include "Core/Basics/MathConstants.h"
+#include "Tests/UnitTests/Numeric/FormFactorTest.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 //! Check that form factors are invariant when q is transformed according to particle symmetry.
 
diff --git a/Tests/UnitTests/Numeric/FormFactorTest.cpp b/Tests/UnitTests/Numeric/FormFactorTest.cpp
index 0f18f171c8363a0dfb6d976ca61be3fdfe7bba23..a1d1ad44fea19e8da5750b95c9f82c706c78cc0f 100644
--- a/Tests/UnitTests/Numeric/FormFactorTest.cpp
+++ b/Tests/UnitTests/Numeric/FormFactorTest.cpp
@@ -1,5 +1,5 @@
-#include "FormFactorTest.h"
-#include "google_test.h" // tests segfault under Linux/clang-9.0.1 if this include is missing
+#include "Tests/UnitTests/Numeric/FormFactorTest.h"
+#include "Tests/UnitTests/utilities/google_test.h" // tests segfault under Linux/clang-9.0.1 if this include is missing
 
 using ::testing::Combine;
 using ::testing::Values;
diff --git a/Tests/UnitTests/Numeric/FormFactorTest.h b/Tests/UnitTests/Numeric/FormFactorTest.h
index 87519ba8eb3187dfdf5f05f55962894b7f4e5675..df2940bf1156200b2a80174149bb5a8310662604 100644
--- a/Tests/UnitTests/Numeric/FormFactorTest.h
+++ b/Tests/UnitTests/Numeric/FormFactorTest.h
@@ -1,5 +1,5 @@
-#include "Complex.h"
-#include "Vectors3D.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Vector/Vectors3D.h"
 #include <functional>
 
 //! Facilities for FormFactorSpecializationTest and FormFactorSymmetryTest.
diff --git a/Tests/UnitTests/utilities/TestAll.cpp b/Tests/UnitTests/utilities/TestAll.cpp
index 46186b6aa12e578df9818aaf867d09ebcd0f5848..c716b61c88526c0ad1b7832c206b3aa78a4b759a 100644
--- a/Tests/UnitTests/utilities/TestAll.cpp
+++ b/Tests/UnitTests/utilities/TestAll.cpp
@@ -1,4 +1,4 @@
-#include "google_test.h"
+#include "Tests/UnitTests/utilities/google_test.h"
 
 int main(int argc, char** argv)
 {
diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i
index ff61bff1292e8d2fc66ff23873fb1896f6c8b819..81ea9b2514004db5218fc08fba3bfe6875ca445a 100644
--- a/Wrap/swig/libBornAgainCore.i
+++ b/Wrap/swig/libBornAgainCore.i
@@ -73,165 +73,165 @@
 %import "WinDllMacros.h"
 
 %{
-#include "AngularSpecScan.h"
+#include "Core/Instrument/AngularSpecScan.h"
 #include "BAVersion.h"
-#include "BasicVector3D.h"
-#include "Beam.h"
-#include "Bin.h"
-#include "ChiSquaredModule.h"
-#include "Complex.h"
-#include "ConstantBackground.h"
-#include "ConstKBinAxis.h"
-#include "Crystal.h"
-#include "CustomBinAxis.h"
-#include "DepthProbeSimulation.h"
-#include "DetectorMask.h"
-#include "Distributions.h"
-#include "Ellipse.h"
-#include "FTDecayFunctions.h"
-#include "FTDistributions1D.h"
-#include "FTDistributions2D.h"
-#include "FitOptions.h"
-#include "PyFittingCallbacks.h"
-#include "FitObjective.h"
-#include "FixedBinAxis.h"
-#include "FootprintFactorGaussian.h"
-#include "FootprintFactorSquare.h"
-#include "FormFactorAnisoPyramid.h"
-#include "FormFactorBar.h"
-#include "FormFactorBox.h"
-#include "FormFactorCantellatedCube.h"
-#include "FormFactorCone.h"
-#include "FormFactorCone6.h"
-#include "FormFactorCrystal.h"
-#include "FormFactorCuboctahedron.h"
-#include "FormFactorCylinder.h"
-#include "FormFactorDebyeBueche.h"
-#include "FormFactorDodecahedron.h"
-#include "FormFactorDot.h"
-#include "FormFactorEllipsoidalCylinder.h"
-#include "FormFactorFullSphere.h"
-#include "FormFactorFullSpheroid.h"
-#include "FormFactorGauss.h"
-#include "FormFactorHemiEllipsoid.h"
-#include "FormFactorIcosahedron.h"
-#include "FormFactorLongBoxGauss.h"
-#include "FormFactorLongBoxLorentz.h"
-#include "FormFactorLorentz.h"
-#include "FormFactorOrnsteinZernike.h"
-#include "FormFactorPolyhedron.h"
-#include "FormFactorPolyhedron.h"
-#include "FormFactorPrism3.h"
-#include "FormFactorPrism6.h"
-#include "FormFactorPyramid.h"
-#include "FormFactorRipple1.h"
-#include "FormFactorRipple2.h"
-#include "FormFactorSphereGaussianRadius.h"
-#include "FormFactorSphereLogNormalRadius.h"
-#include "FormFactorSphereUniformRadius.h"
-#include "FormFactorTetrahedron.h"
-#include "FormFactorTruncatedCube.h"
-#include "FormFactorTruncatedSphere.h"
-#include "FormFactorTruncatedSpheroid.h"
-#include "FormFactorWeighted.h"
-#include "GISASSimulation.h"
-#include "Histogram1D.h"
-#include "Histogram2D.h"
-#include "IAbstractParticle.h"
-#include "IBackground.h"
-#include "ICloneable.h"
-#include "IClusteredParticles.h"
-#include "IDetector2D.h"
-#include "IDetectorResolution.h"
-#include "IFormFactorDecorator.h"
-#include "IHistogram.h"
-#include "IIntensityFunction.h"
-#include "IInterferenceFunction.h"
-#include "ILayout.h"
-#include "INamed.h"
-#include "INode.h"
-#include "IObserver.h"
-#include "IParameterized.h"
-#include "IParticle.h"
-#include "IPeakShape.h"
-#include "IResolutionFunction2D.h"
-#include "ISample.h"
-#include "IMultiLayerBuilder.h"
-#include "INodeVisitor.h"
-#include "ISelectionRule.h"
-#include "IShape2D.h"
-#include "ISingleton.h"
-#include "Instrument.h"
-#include "IntensityDataFunctions.h"
-#include "IntensityDataIOFactory.h"
-#include "InterferenceFunction1DLattice.h"
-#include "InterferenceFunction2DLattice.h"
-#include "InterferenceFunction2DParaCrystal.h"
-#include "InterferenceFunction2DSuperLattice.h"
-#include "InterferenceFunction3DLattice.h"
-#include "InterferenceFunctionFinite2DLattice.h"
-#include "InterferenceFunctionFinite3DLattice.h"
-#include "InterferenceFunctionHardDisk.h"
-#include "InterferenceFunctionNone.h"
-#include "InterferenceFunctionRadialParaCrystal.h"
-#include "InterferenceFunctionTwin.h"
-#include "IsGISAXSDetector.h"
-#include "ILatticeOrientation.h"
-#include "Lattice.h"
-#include "LatticeUtils.h"
-#include "Lattice1DParameters.h"
-#include "Lattice2D.h"
-#include "Layer.h"
-#include "LayerInterface.h"
-#include "LayerRoughness.h"
-#include "Line.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathFunctions.h"
-#include "MesoCrystal.h"
-#include "MultiLayer.h"
-#include "MultiLayerFuncs.h"
-#include "OffSpecSimulation.h"
-#include "OutputData.h"
-#include "ParameterDistribution.h"
-#include "ParameterPool.h"
-#include "ParameterSample.h"
-#include "Particle.h"
-#include "ParticleComposition.h"
-#include "ParticleCoreShell.h"
-#include "ParticleDistribution.h"
-#include "ParticleLayout.h"
-#include "PoissonNoiseBackground.h"
-#include "Polygon.h"
-#include "PyArrayImportUtils.h"
-#include "QSpecScan.h"
-#include "RangedDistributions.h"
-#include "RealParameter.h"
-#include "Rectangle.h"
-#include "RectangularDetector.h"
-#include "ResolutionFunction2DGaussian.h"
-#include "Ripples.h"
-#include "Rotations.h"
-#include "SampleBuilderFactory.h"
-#include "ScanResolution.h"
-#include "Simulation.h"
-#include "Simulation2D.h"
-#include "SimulationFactory.h"
-#include "SimulationOptions.h"
-#include "SimulationResult.h"
-#include "SlicedParticle.h"
-#include "SpecularSimulation.h"
-#include "SphericalDetector.h"
-#include "ThreadInfo.h"
-#include "Units.h"
-#include "VariableBinAxis.h"
-#include "Vectors3D.h"
-#include "WavevectorInfo.h"
-#include "IChiSquaredModule.h"
-#include "IIntensityFunction.h"
-#include "IIntensityNormalizer.h"
-#include "VarianceFunctions.h"
-#include "IterationInfo.h"
-#include "SpectrumUtils.h"
+#include "Core/Vector/BasicVector3D.h"
+#include "Core/Beam/Beam.h"
+#include "Core/Binning/Bin.h"
+#include "Core/Instrument/ChiSquaredModule.h"
+#include "Core/Basics/Complex.h"
+#include "Core/Computation/ConstantBackground.h"
+#include "Core/Binning/ConstKBinAxis.h"
+#include "Core/Particle/Crystal.h"
+#include "Core/Binning/CustomBinAxis.h"
+#include "Core/Simulation/DepthProbeSimulation.h"
+#include "Core/Instrument/DetectorMask.h"
+#include "Core/Parametrization/Distributions.h"
+#include "Core/Mask/Ellipse.h"
+#include "Core/Aggregate/FTDecayFunctions.h"
+#include "Core/Aggregate/FTDistributions1D.h"
+#include "Core/Aggregate/FTDistributions2D.h"
+#include "Fit/Kernel/FitOptions.h"
+#include "Core/Fitting/PyFittingCallbacks.h"
+#include "Core/Fitting/FitObjective.h"
+#include "Core/Binning/FixedBinAxis.h"
+#include "Core/Beam/FootprintFactorGaussian.h"
+#include "Core/Beam/FootprintFactorSquare.h"
+#include "Core/HardParticle/FormFactorAnisoPyramid.h"
+#include "Core/HardParticle/FormFactorBar.h"
+#include "Core/HardParticle/FormFactorBox.h"
+#include "Core/HardParticle/FormFactorCantellatedCube.h"
+#include "Core/HardParticle/FormFactorCone.h"
+#include "Core/HardParticle/FormFactorCone6.h"
+#include "Core/Particle/FormFactorCrystal.h"
+#include "Core/HardParticle/FormFactorCuboctahedron.h"
+#include "Core/HardParticle/FormFactorCylinder.h"
+#include "Core/SoftParticle/FormFactorDebyeBueche.h"
+#include "Core/HardParticle/FormFactorDodecahedron.h"
+#include "Core/HardParticle/FormFactorDot.h"
+#include "Core/HardParticle/FormFactorEllipsoidalCylinder.h"
+#include "Core/HardParticle/FormFactorFullSphere.h"
+#include "Core/HardParticle/FormFactorFullSpheroid.h"
+#include "Core/SoftParticle/FormFactorGauss.h"
+#include "Core/HardParticle/FormFactorHemiEllipsoid.h"
+#include "Core/HardParticle/FormFactorIcosahedron.h"
+#include "Core/HardParticle/FormFactorLongBoxGauss.h"
+#include "Core/HardParticle/FormFactorLongBoxLorentz.h"
+#include "Core/SoftParticle/FormFactorLorentz.h"
+#include "Core/SoftParticle/FormFactorOrnsteinZernike.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPolyhedron.h"
+#include "Core/HardParticle/FormFactorPrism3.h"
+#include "Core/HardParticle/FormFactorPrism6.h"
+#include "Core/HardParticle/FormFactorPyramid.h"
+#include "Core/HardParticle/FormFactorRipple1.h"
+#include "Core/HardParticle/FormFactorRipple2.h"
+#include "Core/SoftParticle/FormFactorSphereGaussianRadius.h"
+#include "Core/SoftParticle/FormFactorSphereLogNormalRadius.h"
+#include "Core/SoftParticle/FormFactorSphereUniformRadius.h"
+#include "Core/HardParticle/FormFactorTetrahedron.h"
+#include "Core/HardParticle/FormFactorTruncatedCube.h"
+#include "Core/HardParticle/FormFactorTruncatedSphere.h"
+#include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
+#include "Core/Particle/FormFactorWeighted.h"
+#include "Core/Simulation/GISASSimulation.h"
+#include "Core/Instrument/Histogram1D.h"
+#include "Core/Instrument/Histogram2D.h"
+#include "Core/Particle/IAbstractParticle.h"
+#include "Core/Computation/IBackground.h"
+#include "Core/Basics/ICloneable.h"
+#include "Core/Particle/IClusteredParticles.h"
+#include "Core/Instrument/IDetector2D.h"
+#include "Core/Instrument/IDetectorResolution.h"
+#include "Core/DecoratedFormFactor/IFormFactorDecorator.h"
+#include "Core/Instrument/IHistogram.h"
+#include "Core/Instrument/IIntensityFunction.h"
+#include "Core/Aggregate/IInterferenceFunction.h"
+#include "Core/Aggregate/ILayout.h"
+#include "Core/Basics/INamed.h"
+#include "Core/Parametrization/INode.h"
+#include "Core/Fitting/IObserver.h"
+#include "Core/Parametrization/IParameterized.h"
+#include "Core/Particle/IParticle.h"
+#include "Core/Aggregate/IPeakShape.h"
+#include "Core/Instrument/IResolutionFunction2D.h"
+#include "Core/Scattering/ISample.h"
+#include "Core/Multilayer/IMultiLayerBuilder.h"
+#include "Core/Parametrization/INodeVisitor.h"
+#include "Core/Lattice/ISelectionRule.h"
+#include "Core/Mask/IShape2D.h"
+#include "Core/Basics/ISingleton.h"
+#include "Core/Instrument/Instrument.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/InputOutput/IntensityDataIOFactory.h"
+#include "Core/Aggregate/InterferenceFunction1DLattice.h"
+#include "Core/Aggregate/InterferenceFunction2DLattice.h"
+#include "Core/Aggregate/InterferenceFunction2DParaCrystal.h"
+#include "Core/Aggregate/InterferenceFunction2DSuperLattice.h"
+#include "Core/Aggregate/InterferenceFunction3DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionFinite2DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionFinite3DLattice.h"
+#include "Core/Aggregate/InterferenceFunctionHardDisk.h"
+#include "Core/Aggregate/InterferenceFunctionNone.h"
+#include "Core/Aggregate/InterferenceFunctionRadialParaCrystal.h"
+#include "Core/Aggregate/InterferenceFunctionTwin.h"
+#include "Core/Instrument/IsGISAXSDetector.h"
+#include "Core/Lattice/ILatticeOrientation.h"
+#include "Core/Lattice/Lattice.h"
+#include "Core/Lattice/LatticeUtils.h"
+#include "Core/Lattice/Lattice1DParameters.h"
+#include "Core/Lattice/Lattice2D.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Multilayer/LayerInterface.h"
+#include "Core/Multilayer/LayerRoughness.h"
+#include "Core/Mask/Line.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Tools/MathFunctions.h"
+#include "Core/Particle/MesoCrystal.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Multilayer/MultiLayerFuncs.h"
+#include "Core/Simulation/OffSpecSimulation.h"
+#include "Core/Instrument/OutputData.h"
+#include "Core/Parametrization/ParameterDistribution.h"
+#include "Core/Parametrization/ParameterPool.h"
+#include "Core/Parametrization/ParameterSample.h"
+#include "Core/Particle/Particle.h"
+#include "Core/Particle/ParticleComposition.h"
+#include "Core/Particle/ParticleCoreShell.h"
+#include "Core/Particle/ParticleDistribution.h"
+#include "Core/Aggregate/ParticleLayout.h"
+#include "Core/Computation/PoissonNoiseBackground.h"
+#include "Core/Mask/Polygon.h"
+#include "Core/Instrument/PyArrayImportUtils.h"
+#include "Core/Instrument/QSpecScan.h"
+#include "Core/Parametrization/RangedDistributions.h"
+#include "Core/Parametrization/RealParameter.h"
+#include "Core/Mask/Rectangle.h"
+#include "Core/Instrument/RectangularDetector.h"
+#include "Core/Instrument/ResolutionFunction2DGaussian.h"
+#include "Core/HardParticle/Ripples.h"
+#include "Core/Scattering/Rotations.h"
+#include "Core/StandardSamples/SampleBuilderFactory.h"
+#include "Core/Instrument/ScanResolution.h"
+#include "Core/Simulation/Simulation.h"
+#include "Core/Simulation/Simulation2D.h"
+#include "Core/StandardSamples/SimulationFactory.h"
+#include "Core/Parametrization/SimulationOptions.h"
+#include "Core/Instrument/SimulationResult.h"
+#include "Core/Particle/SlicedParticle.h"
+#include "Core/Simulation/SpecularSimulation.h"
+#include "Core/Instrument/SphericalDetector.h"
+#include "Core/Parametrization/ThreadInfo.h"
+#include "Core/Parametrization/Units.h"
+#include "Core/Binning/VariableBinAxis.h"
+#include "Core/Vector/Vectors3D.h"
+#include "Core/Vector/WavevectorInfo.h"
+#include "Core/Instrument/IChiSquaredModule.h"
+#include "Core/Instrument/IIntensityFunction.h"
+#include "Core/Instrument/IIntensityNormalizer.h"
+#include "Core/Instrument/VarianceFunctions.h"
+#include "Core/Fitting/IterationInfo.h"
+#include "Core/Tools/SpectrumUtils.h"
 %}
 
 // ownership
diff --git a/Wrap/swig/libBornAgainFit.i b/Wrap/swig/libBornAgainFit.i
index c80aea09796ceb9a7e1129f2635b34808f6e5085..ffc854e8047534272e90fa12de9d85afc152c055 100644
--- a/Wrap/swig/libBornAgainFit.i
+++ b/Wrap/swig/libBornAgainFit.i
@@ -59,17 +59,17 @@ import_array();
 %import "WinDllMacros.h"
 
 %{
-#include "RealLimits.h"
-#include "AttLimits.h"
-#include "Parameter.h"
-#include "Parameters.h"
-#include "IMinimizer.h"
-#include "MinimizerCatalogue.h"
-#include "MinimizerFactory.h"
-
-#include "PyCallback.h"
-#include "MinimizerResult.h"
-#include "Minimizer.h"
+#include "Fit/Tools/RealLimits.h"
+#include "Fit/Tools/AttLimits.h"
+#include "Fit/Kernel/Parameter.h"
+#include "Fit/Kernel/Parameters.h"
+#include "Fit/Minimizer/IMinimizer.h"
+#include "Fit/Minimizer/MinimizerCatalogue.h"
+#include "Fit/Minimizer/MinimizerFactory.h"
+
+#include "Fit/Kernel/PyCallback.h"
+#include "Fit/Kernel/MinimizerResult.h"
+#include "Fit/Kernel/Minimizer.h"
 %}
 
 // The following goes verbatim from libBornAgainFit.i to libBornAgainFit_wrap.cxx.
diff --git a/unused/ComponentParameter.cpp b/unused/ComponentParameter.cpp
index 5606b7273def6f19f7d51e0efa40a8e256f7ddb7..da97cfe972906dcab14104218cc4cf62c8897fe9 100644
--- a/unused/ComponentParameter.cpp
+++ b/unused/ComponentParameter.cpp
@@ -13,4 +13,4 @@
 //
 // ************************************************************************** //
 
-#include "ComponentParameter.h"
+#include "unused/ComponentParameter.h"
diff --git a/unused/ComponentParameter.h b/unused/ComponentParameter.h
index 3a45f2f26942af81baaefb73091fbe0418fb7c95..5d39acd95b151a193b2731f7f12771e606bde1cc 100644
--- a/unused/ComponentParameter.h
+++ b/unused/ComponentParameter.h
@@ -16,8 +16,8 @@
 #ifndef COMPONENTPARAMETER_H
 #define COMPONENTPARAMETER_H
 
-#include "IParameter.h"
-#include "ISample.h"
+#include "Core/Parametrization/IParameter.h"
+#include "Core/Scattering/ISample.h"
 #include <string>
 
 //! Wraps a parameter of type ISample.
diff --git a/unused/MatrixSpecularInfoMapTest.h b/unused/MatrixSpecularInfoMapTest.h
index 62f109db3c5733793785f628b3992d8c66cf0b08..cad81fd4f9dc7b012d97a636b50dcc20b5a0c9b8 100644
--- a/unused/MatrixSpecularInfoMapTest.h
+++ b/unused/MatrixSpecularInfoMapTest.h
@@ -1,13 +1,13 @@
 #ifndef MATRIXSPECULARINFOMAPTEST_H
 #define MATRIXSPECULARINFOMAPTEST_H
 
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MatrixRTCoefficients.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Multilayer/MatrixRTCoefficients.h"
 #include "MatrixMLFresnelMap.h"
-#include "MultiLayer.h"
-#include "MathConstants.h"
-#include "SimulationElement.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/SimulationElement/SimulationElement.h"
 #include <memory>
 
 class MatrixSpecularInfoMapTest : public ::testing :: Test
diff --git a/unused/ScalarSpecularInfoMapTest.h b/unused/ScalarSpecularInfoMapTest.h
index 82c1966f4a4908e51bba2f9044e5b51abef8e57a..012463cc02321c7640e12e80c7eb0c39c7180947 100644
--- a/unused/ScalarSpecularInfoMapTest.h
+++ b/unused/ScalarSpecularInfoMapTest.h
@@ -1,13 +1,13 @@
 #ifndef SCALARSPECULARINFOMAPTEST_H
 #define SCALARSPECULARINFOMAPTEST_H
 
-#include "MultiLayer.h"
-#include "Layer.h"
-#include "MaterialFactoryFuncs.h"
-#include "MathConstants.h"
-#include "ScalarRTCoefficients.h"
+#include "Core/Multilayer/MultiLayer.h"
+#include "Core/Multilayer/Layer.h"
+#include "Core/Material/MaterialFactoryFuncs.h"
+#include "Core/Basics/MathConstants.h"
+#include "Core/Multilayer/ScalarRTCoefficients.h"
 #include "ScalarSpecularInfoMap.h"
-#include "SimulationElement.h"
+#include "Core/SimulationElement/SimulationElement.h"
 #include <memory>
 
 class ScalarSpecularInfoMapTest : public ::testing :: Test
diff --git a/unused/ScanningMinimizer.cpp b/unused/ScanningMinimizer.cpp
index c81ba0bf6b07c433d0ee6e4cac15e19aab5efb13..75389a363a9d83dfd390b6938cbf05bcc014a181 100644
--- a/unused/ScanningMinimizer.cpp
+++ b/unused/ScanningMinimizer.cpp
@@ -13,8 +13,8 @@
 //
 // ************************************************************************** //
 
-#include "ScanningMinimizer.h"
-#include "Exceptions.h"
+#include "unused/ScanningMinimizer.h"
+#include "Core/Basics/Exceptions.h"
 #include "FitParameter.h"
 #include <iostream>
 #include <iomanip>
diff --git a/unused/ScanningMinimizer.h b/unused/ScanningMinimizer.h
index 61ec902e7a8a4527661f2528cb078e4a0a288b7f..ecd037f2ef552f8a35337a4fe6433201c174f754 100644
--- a/unused/ScanningMinimizer.h
+++ b/unused/ScanningMinimizer.h
@@ -16,7 +16,7 @@
 #ifndef MINIMIZERSCAN_H
 #define MINIMIZERSCAN_H
 
-#include "IMinimizer.h"
+#include "Fit/Minimizer/IMinimizer.h"
 #include "FitSuiteParameters.h"
 
 //! @class ScanningMinimizer