diff --git a/Core/Fitting/FitObjective.cpp b/Core/Fitting/FitObjective.cpp
index 0c274dff0df7fd15a2f903340b40233d8e79460a..f1e71a0075ec836460cd624165259621e59011e2 100644
--- a/Core/Fitting/FitObjective.cpp
+++ b/Core/Fitting/FitObjective.cpp
@@ -18,7 +18,7 @@
 #include "Core/Fitting/ObjectiveMetricUtils.h"
 #include "Core/Fitting/PyFittingCallbacks.h"
 #include "Core/Simulation/ISimulation.h"
-#include "Device/Intensity/ChiSquaredModule.h"
+#include "Core/Residual/ChiSquaredModule.h"
 #include <stdexcept>
 
 class IMetricWrapper {
diff --git a/Device/Intensity/ChiSquaredModule.cpp b/Core/Residual/ChiSquaredModule.cpp
similarity index 85%
rename from Device/Intensity/ChiSquaredModule.cpp
rename to Core/Residual/ChiSquaredModule.cpp
index 4d59ae0a93692dae091c5453d1263a8d71f88a35..8eb31544b17147da10993df6846dd92d9bfd4589 100644
--- a/Device/Intensity/ChiSquaredModule.cpp
+++ b/Core/Residual/ChiSquaredModule.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/ChiSquaredModule.cpp
+//! @file      Core/Residual/ChiSquaredModule.cpp
 //! @brief     Implements class ChiSquaredModule.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 //  ************************************************************************************************
 
-#include "Device/Intensity/ChiSquaredModule.h"
+#include "Core/Residual/ChiSquaredModule.h"
 #include "Base/Utils/Assert.h"
-#include "Device/Intensity/VarianceFunctions.h"
-#include "Device/Intensity/IIntensityFunction.h"
+#include "Core/Residual/VarianceFunctions.h"
+#include "Core/Residual/IIntensityFunction.h"
 #include <cmath>
 #include <limits>
 
diff --git a/Device/Intensity/ChiSquaredModule.h b/Core/Residual/ChiSquaredModule.h
similarity index 92%
rename from Device/Intensity/ChiSquaredModule.h
rename to Core/Residual/ChiSquaredModule.h
index a346f3bc765db38fb3de2dce80b5d5e1ab4c2955..f9d200997f079df965764a0683195945f6df17e0 100644
--- a/Device/Intensity/ChiSquaredModule.h
+++ b/Core/Residual/ChiSquaredModule.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/ChiSquaredModule.h
+//! @file      Core/Residual/ChiSquaredModule.h
 //! @brief     Defines class ChiSquaredModule.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_DEVICE_INSTRUMENT_CHISQUAREDMODULE_H
 #define BORNAGAIN_DEVICE_INSTRUMENT_CHISQUAREDMODULE_H
 
-#include "Device/Intensity/IChiSquaredModule.h"
+#include "Core/Residual/IChiSquaredModule.h"
 
 //! Calculation of chi2 between two data sets.
 //! @ingroup fitting
diff --git a/Device/Intensity/IChiSquaredModule.cpp b/Core/Residual/IChiSquaredModule.cpp
similarity index 88%
rename from Device/Intensity/IChiSquaredModule.cpp
rename to Core/Residual/IChiSquaredModule.cpp
index 9f1e4e3aef39c56112dd10f1e8407a72c723a527..0351bd6faa524a6a548cb90bb59b63a1d76ae315 100644
--- a/Device/Intensity/IChiSquaredModule.cpp
+++ b/Core/Residual/IChiSquaredModule.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/IChiSquaredModule.cpp
+//! @file      Core/Residual/IChiSquaredModule.cpp
 //! @brief     Implements interface IChiSquaredModule.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 //  ************************************************************************************************
 
-#include "Device/Intensity/IChiSquaredModule.h"
-#include "Device/Intensity/VarianceFunctions.h"
-#include "Device/Intensity/IIntensityFunction.h"
+#include "Core/Residual/IChiSquaredModule.h"
+#include "Core/Residual/VarianceFunctions.h"
+#include "Core/Residual/IIntensityFunction.h"
 
 IChiSquaredModule::IChiSquaredModule() : m_variance_function(new VarianceSimFunction) {}
 
diff --git a/Device/Intensity/IChiSquaredModule.h b/Core/Residual/IChiSquaredModule.h
similarity index 97%
rename from Device/Intensity/IChiSquaredModule.h
rename to Core/Residual/IChiSquaredModule.h
index ddee3cab1c033317acd6fc4425f73d91204528fb..4c3e0df12aa8e4bada96ea46fce9a62b7cf7ca70 100644
--- a/Device/Intensity/IChiSquaredModule.h
+++ b/Core/Residual/IChiSquaredModule.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/IChiSquaredModule.h
+//! @file      Core/Residual/IChiSquaredModule.h
 //! @brief     Defines interface IChiSquaredModule.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Device/Intensity/IIntensityFunction.cpp b/Core/Residual/IIntensityFunction.cpp
similarity index 91%
rename from Device/Intensity/IIntensityFunction.cpp
rename to Core/Residual/IIntensityFunction.cpp
index f55aeda750f3b87fd6b4111ead353d7a0ce6f733..d06c0ffe8ecd320d6a917639f4b7ef815ece9539 100644
--- a/Device/Intensity/IIntensityFunction.cpp
+++ b/Core/Residual/IIntensityFunction.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/IIntensityFunction.cpp
+//! @file      Core/Residual/IIntensityFunction.cpp
 //! @brief     Implements the classes IntensityFunctionLog, IntensityFunctionSqrt
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "Device/Intensity/IIntensityFunction.h"
+#include "Core/Residual/IIntensityFunction.h"
 #include <cmath>
 #include <limits>
 
diff --git a/Device/Intensity/IIntensityFunction.h b/Core/Residual/IIntensityFunction.h
similarity index 96%
rename from Device/Intensity/IIntensityFunction.h
rename to Core/Residual/IIntensityFunction.h
index fb3efe7d517c3978c84766d71a586e6b87606600..b025b882f9af413a40061af2d57a8374f26f0e10 100644
--- a/Device/Intensity/IIntensityFunction.h
+++ b/Core/Residual/IIntensityFunction.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/IIntensityFunction.h
+//! @file      Core/Residual/IIntensityFunction.h
 //! @brief     Defines and implements the interface class IIntensityFunction
 //!            and its child classes IntensityFunctionLog, IntensityFunctionSqrt
 //!
diff --git a/Device/Intensity/VarianceFunctions.cpp b/Core/Residual/VarianceFunctions.cpp
similarity index 93%
rename from Device/Intensity/VarianceFunctions.cpp
rename to Core/Residual/VarianceFunctions.cpp
index e62aff43f6d1d36aba4e0d00c972e435e3cd4685..af51a0493924f66470aaae53fc6aa3d19737b5e7 100644
--- a/Device/Intensity/VarianceFunctions.cpp
+++ b/Core/Residual/VarianceFunctions.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/VarianceFunctions.cpp
+//! @file      Core/Residual/VarianceFunctions.cpp
 //! @brief     Implements IVarianceFunction classes
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "Device/Intensity/VarianceFunctions.h"
+#include "Core/Residual/VarianceFunctions.h"
 #include <algorithm>
 
 //  ************************************************************************************************
diff --git a/Device/Intensity/VarianceFunctions.h b/Core/Residual/VarianceFunctions.h
similarity index 97%
rename from Device/Intensity/VarianceFunctions.h
rename to Core/Residual/VarianceFunctions.h
index 57dbfaf3d361039bdf97a39fe974751d00ba28e4..833f5f72f3bdc419a8fe757b02b4f2653308af85 100644
--- a/Device/Intensity/VarianceFunctions.h
+++ b/Core/Residual/VarianceFunctions.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Device/Intensity/VarianceFunctions.h
+//! @file      Core/Residual/VarianceFunctions.h
 //! @brief     Defines IVarianceFunction classes
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp b/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
index c3d49071accc6d98a9f1f271d1ec64411af8fb6d..26d540d7b7f1c39c1c37f04da6f9f76952ce8644 100644
--- a/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
+++ b/Tests/UnitTests/Core/Other/ChiSquaredModuleTest.cpp
@@ -1,6 +1,6 @@
-#include "Device/Intensity/ChiSquaredModule.h"
+#include "Core/Residual/ChiSquaredModule.h"
 #include "Device/Data/OutputData.h"
-#include "Device/Intensity/VarianceFunctions.h"
+#include "Core/Residual/VarianceFunctions.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 // TODO revise test
diff --git a/Wrap/Swig/libBornAgainDevice.i b/Wrap/Swig/libBornAgainDevice.i
index 780cc82bf8c3c9d37b3d3cefc24345c5d1481cb7..f2425050864c05075370d2d9d3f100aefabf6c2e 100644
--- a/Wrap/Swig/libBornAgainDevice.i
+++ b/Wrap/Swig/libBornAgainDevice.i
@@ -50,13 +50,13 @@
 #include "Device/Histo/IHistogram.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
 #include "Device/Histo/SimulationResult.h"
-#include "Device/Intensity/ChiSquaredModule.h"
-#include "Device/Intensity/IChiSquaredModule.h"
+#include "Core/Residual/ChiSquaredModule.h"
+#include "Core/Residual/IChiSquaredModule.h"
 #include "Device/Instrument/PyArrayImportUtils.h"
 #include "Device/Histo/HistoUtils.h"
-#include "Device/Intensity/VarianceFunctions.h"
-#include "Device/Intensity/IIntensityFunction.h"
-#include "Device/Intensity/IIntensityFunction.h"
+#include "Core/Residual/VarianceFunctions.h"
+#include "Core/Residual/IIntensityFunction.h"
+#include "Core/Residual/IIntensityFunction.h"
 #include "Device/Mask/Ellipse.h"
 #include "Device/Mask/IShape2D.h"
 #include "Device/Mask/Line.h"
@@ -100,7 +100,7 @@
 %include "Device/Beam/IFootprintFactor.h"
 %include "Device/Beam/FootprintGauss.h"
 %include "Device/Beam/FootprintSquare.h"
-%include "Device/Intensity/IIntensityFunction.h"
+%include "Core/Residual/IIntensityFunction.h"
 %include "Device/Mask/IShape2D.h"
 %include "Device/Mask/Ellipse.h"
 %include "Device/Mask/Line.h"
@@ -111,11 +111,11 @@
 %include "Device/Resolution/ResolutionFunction2DGaussian.h"
 %include "Device/Resolution/ScanResolution.h"
 
-%include "Device/Intensity/IChiSquaredModule.h"
-%include "Device/Intensity/ChiSquaredModule.h"
+%include "Core/Residual/IChiSquaredModule.h"
+%include "Core/Residual/ChiSquaredModule.h"
 %include "Device/Instrument/PyArrayImportUtils.h"
 %include "Device/Histo/HistoUtils.h"
-%include "Device/Intensity/VarianceFunctions.h"
+%include "Core/Residual/VarianceFunctions.h"
 
 %include "Device/Unit/IUnitConverter.h"