From 5e4a573d6c06c2458df0f4055429291831fb3899 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (l)" <j.wuttke@fz-juelich.de>
Date: Thu, 15 Oct 2020 21:51:23 +0200
Subject: [PATCH] split Sample/Multilayer -> Fresnel, Specular, Slice,
 Interference

---
 Core/Computation/DWBAComputation.cpp                      | 2 +-
 Core/Computation/DepthProbeComputationTerm.cpp            | 2 +-
 Core/Computation/GISASSpecularComputation.cpp             | 2 +-
 Core/Computation/LayoutStrategyBuilder.cpp                | 4 ++--
 Core/Computation/ParticleLayoutComputation.cpp            | 2 +-
 Core/Computation/ProcessedLayout.cpp                      | 6 +++---
 Core/Computation/ProcessedSample.cpp                      | 6 +++---
 Core/Computation/ProcessedSample.h                        | 2 +-
 Core/Computation/ProfileHelper.cpp                        | 2 +-
 Core/Computation/RoughMultiLayerComputation.cpp           | 4 ++--
 Core/Computation/SpecularComputation.cpp                  | 2 +-
 Core/Computation/SpecularComputationTerm.cpp              | 4 ++--
 Core/Computation/SpecularComputationTerm.h                | 2 +-
 Core/Computation/SpecularStrategyBuilder.cpp              | 8 ++++----
 Core/Computation/SpecularStrategyBuilder.h                | 2 +-
 Core/Export/SampleLabelHandler.cpp                        | 2 +-
 Core/Export/SampleToPython.cpp                            | 2 +-
 Core/Simulation/SpecularSimulation.cpp                    | 2 +-
 Device/Scan/AngularSpecScan.cpp                           | 2 +-
 Device/Scan/QSpecScan.cpp                                 | 2 +-
 GUI/coregui/Models/TransformFromDomain.cpp                | 2 +-
 GUI/coregui/Models/TransformToDomain.h                    | 2 +-
 Sample/{Multilayer => Fresnel}/FormFactorCoherentPart.cpp | 6 +++---
 Sample/{Multilayer => Fresnel}/FormFactorCoherentPart.h   | 2 +-
 Sample/{Multilayer => Fresnel}/FormFactorCoherentSum.cpp  | 4 ++--
 Sample/{Multilayer => Fresnel}/FormFactorCoherentSum.h    | 4 ++--
 Sample/{Multilayer => Fresnel}/IFresnelMap.cpp            | 6 +++---
 Sample/{Multilayer => Fresnel}/IFresnelMap.h              | 4 ++--
 Sample/{Multilayer => Fresnel}/MatrixFresnelMap.cpp       | 8 ++++----
 Sample/{Multilayer => Fresnel}/MatrixFresnelMap.h         | 6 +++---
 Sample/{Multilayer => Fresnel}/ScalarFresnelMap.cpp       | 4 ++--
 Sample/{Multilayer => Fresnel}/ScalarFresnelMap.h         | 4 ++--
 .../DecouplingApproximationStrategy.cpp                   | 8 ++++----
 .../DecouplingApproximationStrategy.h                     | 4 ++--
 .../IInterferenceFunctionStrategy.cpp                     | 6 +++---
 .../IInterferenceFunctionStrategy.h                       | 2 +-
 .../InterferenceFunctionUtils.cpp                         | 6 +++---
 .../InterferenceFunctionUtils.h                           | 2 +-
 Sample/{Multilayer => Interference}/SSCAHelper.cpp        | 6 +++---
 Sample/{Multilayer => Interference}/SSCAHelper.h          | 6 +++---
 .../SSCApproximationStrategy.cpp                          | 6 +++---
 .../SSCApproximationStrategy.h                            | 4 ++--
 Sample/Multilayer/KzComputation.cpp                       | 2 +-
 Sample/Multilayer/LayerInterface.cpp                      | 2 +-
 Sample/Multilayer/MultiLayer.cpp                          | 2 +-
 Sample/{Multilayer => Slice}/LayerRoughness.cpp           | 4 ++--
 Sample/{Multilayer => Slice}/LayerRoughness.h             | 2 +-
 Sample/{Multilayer => Slice}/Slice.cpp                    | 6 +++---
 Sample/{Multilayer => Slice}/Slice.h                      | 2 +-
 Sample/{Multilayer => Slice}/SlicedFormFactorList.cpp     | 6 +++---
 Sample/{Multilayer => Slice}/SlicedFormFactorList.h       | 2 +-
 Sample/{Multilayer => Specular}/ISpecularStrategy.h       | 2 +-
 .../SpecularMagneticNewNCStrategy.cpp                     | 4 ++--
 .../SpecularMagneticNewNCStrategy.h                       | 4 ++--
 .../SpecularMagneticNewStrategy.cpp                       | 8 ++++----
 .../SpecularMagneticNewStrategy.h                         | 4 ++--
 .../SpecularMagneticNewTanhStrategy.cpp                   | 4 ++--
 .../SpecularMagneticNewTanhStrategy.h                     | 4 ++--
 .../SpecularMagneticOldStrategy.cpp                       | 6 +++---
 .../SpecularMagneticOldStrategy.h                         | 4 ++--
 .../{Multilayer => Specular}/SpecularMagneticStrategy.cpp | 6 +++---
 .../{Multilayer => Specular}/SpecularMagneticStrategy.h   | 4 ++--
 .../{Multilayer => Specular}/SpecularScalarNCStrategy.cpp | 4 ++--
 .../{Multilayer => Specular}/SpecularScalarNCStrategy.h   | 4 ++--
 .../{Multilayer => Specular}/SpecularScalarStrategy.cpp   | 8 ++++----
 Sample/{Multilayer => Specular}/SpecularScalarStrategy.h  | 4 ++--
 .../SpecularScalarTanhStrategy.cpp                        | 4 ++--
 .../{Multilayer => Specular}/SpecularScalarTanhStrategy.h | 4 ++--
 .../SpecularSimulationElement.cpp                         | 4 ++--
 .../{Multilayer => Specular}/SpecularSimulationElement.h  | 2 +-
 Sample/StandardSamples/FeNiBilayerBuilder.cpp             | 2 +-
 Sample/StandardSamples/MagneticLayersBuilder.cpp          | 2 +-
 Sample/StandardSamples/MagneticParticlesBuilder.cpp       | 2 +-
 .../StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp  | 2 +-
 Sample/StandardSamples/MultiLayerWithRoughnessBuilder.cpp | 2 +-
 Sample/StandardSamples/ResonatorBuilder.cpp               | 2 +-
 Sample/StandardSamples/ThickAbsorptiveSampleBuilder.cpp   | 2 +-
 Sample/StandardSamples/TwoLayerRoughnessBuilder.cpp       | 2 +-
 Tests/Performance/Core/Mesocrystal.cpp                    | 2 +-
 Tests/UnitTests/Core/Fresnel/SpecularMagneticOldTest.cpp  | 4 ++--
 Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp     | 6 +++---
 Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp         | 2 +-
 Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp | 2 +-
 Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp        | 2 +-
 Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp        | 2 +-
 Tests/UnitTests/Core/Sample/MultiLayerTest.cpp            | 2 +-
 Tests/UnitTests/Core/Sample/RTTest.cpp                    | 4 ++--
 Wrap/swig/libBornAgainSample.i                            | 4 ++--
 88 files changed, 160 insertions(+), 160 deletions(-)
 rename Sample/{Multilayer => Fresnel}/FormFactorCoherentPart.cpp (94%)
 rename Sample/{Multilayer => Fresnel}/FormFactorCoherentPart.h (96%)
 rename Sample/{Multilayer => Fresnel}/FormFactorCoherentSum.cpp (94%)
 rename Sample/{Multilayer => Fresnel}/FormFactorCoherentSum.h (93%)
 rename Sample/{Multilayer => Fresnel}/IFresnelMap.cpp (87%)
 rename Sample/{Multilayer => Fresnel}/IFresnelMap.h (95%)
 rename Sample/{Multilayer => Fresnel}/MatrixFresnelMap.cpp (93%)
 rename Sample/{Multilayer => Fresnel}/MatrixFresnelMap.h (94%)
 rename Sample/{Multilayer => Fresnel}/ScalarFresnelMap.cpp (95%)
 rename Sample/{Multilayer => Fresnel}/ScalarFresnelMap.h (95%)
 rename Sample/{Multilayer => Interference}/DecouplingApproximationStrategy.cpp (93%)
 rename Sample/{Multilayer => Interference}/DecouplingApproximationStrategy.h (90%)
 rename Sample/{Multilayer => Interference}/IInterferenceFunctionStrategy.cpp (94%)
 rename Sample/{Multilayer => Interference}/IInterferenceFunctionStrategy.h (97%)
 rename Sample/{Multilayer => Interference}/InterferenceFunctionUtils.cpp (88%)
 rename Sample/{Multilayer => Interference}/InterferenceFunctionUtils.h (95%)
 rename Sample/{Multilayer => Interference}/SSCAHelper.cpp (95%)
 rename Sample/{Multilayer => Interference}/SSCAHelper.h (91%)
 rename Sample/{Multilayer => Interference}/SSCApproximationStrategy.cpp (95%)
 rename Sample/{Multilayer => Interference}/SSCApproximationStrategy.h (92%)
 rename Sample/{Multilayer => Slice}/LayerRoughness.cpp (96%)
 rename Sample/{Multilayer => Slice}/LayerRoughness.h (97%)
 rename Sample/{Multilayer => Slice}/Slice.cpp (95%)
 rename Sample/{Multilayer => Slice}/Slice.h (98%)
 rename Sample/{Multilayer => Slice}/SlicedFormFactorList.cpp (97%)
 rename Sample/{Multilayer => Slice}/SlicedFormFactorList.h (97%)
 rename Sample/{Multilayer => Specular}/ISpecularStrategy.h (96%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticNewNCStrategy.cpp (96%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticNewNCStrategy.h (93%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticNewStrategy.cpp (97%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticNewStrategy.h (95%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticNewTanhStrategy.cpp (95%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticNewTanhStrategy.h (92%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticOldStrategy.cpp (97%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticOldStrategy.h (92%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticStrategy.cpp (98%)
 rename Sample/{Multilayer => Specular}/SpecularMagneticStrategy.h (96%)
 rename Sample/{Multilayer => Specular}/SpecularScalarNCStrategy.cpp (91%)
 rename Sample/{Multilayer => Specular}/SpecularScalarNCStrategy.h (93%)
 rename Sample/{Multilayer => Specular}/SpecularScalarStrategy.cpp (95%)
 rename Sample/{Multilayer => Specular}/SpecularScalarStrategy.h (95%)
 rename Sample/{Multilayer => Specular}/SpecularScalarTanhStrategy.cpp (91%)
 rename Sample/{Multilayer => Specular}/SpecularScalarTanhStrategy.h (92%)
 rename Sample/{Multilayer => Specular}/SpecularSimulationElement.cpp (95%)
 rename Sample/{Multilayer => Specular}/SpecularSimulationElement.h (97%)

diff --git a/Core/Computation/DWBAComputation.cpp b/Core/Computation/DWBAComputation.cpp
index 0bfb839f749..5a5208188c8 100644
--- a/Core/Computation/DWBAComputation.cpp
+++ b/Core/Computation/DWBAComputation.cpp
@@ -20,7 +20,7 @@
 #include "Core/Computation/ProcessedSample.h"
 #include "Core/Computation/ProgressHandler.h"
 #include "Core/Computation/RoughMultiLayerComputation.h"
-#include "Sample/Multilayer/IFresnelMap.h"
+#include "Sample/Fresnel/IFresnelMap.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 static_assert(std::is_copy_constructible<DWBAComputation>::value == false,
diff --git a/Core/Computation/DepthProbeComputationTerm.cpp b/Core/Computation/DepthProbeComputationTerm.cpp
index 893756e1443..ab5238f7b6d 100644
--- a/Core/Computation/DepthProbeComputationTerm.cpp
+++ b/Core/Computation/DepthProbeComputationTerm.cpp
@@ -17,7 +17,7 @@
 #include "Core/Computation/DelayedProgressCounter.h"
 #include "Core/Computation/DepthProbeElement.h"
 #include "Core/Computation/ProcessedSample.h"
-#include "Sample/Multilayer/IFresnelMap.h"
+#include "Sample/Fresnel/IFresnelMap.h"
 
 DepthProbeComputationTerm::DepthProbeComputationTerm(const ProcessedSample* p_sample)
     : mp_sample{p_sample}
diff --git a/Core/Computation/GISASSpecularComputation.cpp b/Core/Computation/GISASSpecularComputation.cpp
index b014156c94d..e534e6c2439 100644
--- a/Core/Computation/GISASSpecularComputation.cpp
+++ b/Core/Computation/GISASSpecularComputation.cpp
@@ -14,7 +14,7 @@
 
 #include "Core/Computation/GISASSpecularComputation.h"
 #include "Base/Pixel/SimulationElement.h"
-#include "Sample/Multilayer/IFresnelMap.h"
+#include "Sample/Fresnel/IFresnelMap.h"
 
 GISASSpecularComputation::GISASSpecularComputation(const IFresnelMap* p_fresnel_map)
     : mp_fresnel_map{p_fresnel_map}
diff --git a/Core/Computation/LayoutStrategyBuilder.cpp b/Core/Computation/LayoutStrategyBuilder.cpp
index e425cf95874..243bbeae968 100644
--- a/Core/Computation/LayoutStrategyBuilder.cpp
+++ b/Core/Computation/LayoutStrategyBuilder.cpp
@@ -16,8 +16,8 @@
 #include "Base/Types/Exceptions.h"
 #include "Core/Computation/ProcessedLayout.h"
 #include "Sample/Aggregate/InterferenceFunctionRadialParaCrystal.h"
-#include "Sample/Multilayer/DecouplingApproximationStrategy.h"
-#include "Sample/Multilayer/SSCApproximationStrategy.h"
+#include "Sample/Interference/DecouplingApproximationStrategy.h"
+#include "Sample/Interference/SSCApproximationStrategy.h"
 
 LayoutStrategyBuilder::LayoutStrategyBuilder(const ProcessedLayout* p_layout,
                                              const SimulationOptions& sim_params, bool polarized)
diff --git a/Core/Computation/ParticleLayoutComputation.cpp b/Core/Computation/ParticleLayoutComputation.cpp
index 945ba2b53f3..53185caf4dc 100644
--- a/Core/Computation/ParticleLayoutComputation.cpp
+++ b/Core/Computation/ParticleLayoutComputation.cpp
@@ -16,7 +16,7 @@
 #include "Base/Pixel/SimulationElement.h"
 #include "Core/Computation/LayoutStrategyBuilder.h"
 #include "Core/Computation/ProcessedLayout.h"
-#include "Sample/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Sample/Interference/IInterferenceFunctionStrategy.h"
 
 ParticleLayoutComputation::ParticleLayoutComputation(const ProcessedLayout* p_layout,
                                                      const SimulationOptions& options,
diff --git a/Core/Computation/ProcessedLayout.cpp b/Core/Computation/ProcessedLayout.cpp
index 20eb0ac0fe5..4e4b7a0a3bb 100644
--- a/Core/Computation/ProcessedLayout.cpp
+++ b/Core/Computation/ProcessedLayout.cpp
@@ -15,9 +15,9 @@
 #include "Core/Computation/ProcessedLayout.h"
 #include "Sample/Aggregate/IInterferenceFunction.h"
 #include "Sample/Correlations/ILayout.h"
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
-#include "Sample/Multilayer/Slice.h"
-#include "Sample/Multilayer/SlicedFormFactorList.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
+#include "Sample/Slice/Slice.h"
+#include "Sample/Slice/SlicedFormFactorList.h"
 #include "Sample/Particle/IParticle.h"
 #include "Sample/Scattering/FormFactorBAPol.h"
 #include "Sample/Scattering/FormFactorDWBA.h"
diff --git a/Core/Computation/ProcessedSample.cpp b/Core/Computation/ProcessedSample.cpp
index 32b2bbd2b82..6efe2f71d4f 100644
--- a/Core/Computation/ProcessedSample.cpp
+++ b/Core/Computation/ProcessedSample.cpp
@@ -16,10 +16,10 @@
 #include "Core/Computation/ProcessedLayout.h"
 #include "Core/Computation/SpecularStrategyBuilder.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
-#include "Sample/Multilayer/MatrixFresnelMap.h"
+#include "Sample/Slice/LayerRoughness.h"
+#include "Sample/Fresnel/MatrixFresnelMap.h"
 #include "Sample/Multilayer/MultiLayerUtils.h"
-#include "Sample/Multilayer/ScalarFresnelMap.h"
+#include "Sample/Fresnel/ScalarFresnelMap.h"
 #include "Sample/Particle/HomogeneousRegion.h"
 #include "Sample/RT/SimulationOptions.h"
 
diff --git a/Core/Computation/ProcessedSample.h b/Core/Computation/ProcessedSample.h
index da833fd63c0..09cfa045685 100644
--- a/Core/Computation/ProcessedSample.h
+++ b/Core/Computation/ProcessedSample.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_COMPUTATION_PROCESSEDSAMPLE_H
 #define BORNAGAIN_CORE_COMPUTATION_PROCESSEDSAMPLE_H
 
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/Slice.h"
 #include <map>
 #include <memory>
 #include <vector>
diff --git a/Core/Computation/ProfileHelper.cpp b/Core/Computation/ProfileHelper.cpp
index 42e42704863..a402bda3993 100644
--- a/Core/Computation/ProfileHelper.cpp
+++ b/Core/Computation/ProfileHelper.cpp
@@ -14,7 +14,7 @@
 
 #include "Core/Computation/ProfileHelper.h"
 #include "Core/Computation/ProcessedSample.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 
 namespace
 {
diff --git a/Core/Computation/RoughMultiLayerComputation.cpp b/Core/Computation/RoughMultiLayerComputation.cpp
index 991f2324463..a5de4c4a4f7 100644
--- a/Core/Computation/RoughMultiLayerComputation.cpp
+++ b/Core/Computation/RoughMultiLayerComputation.cpp
@@ -16,10 +16,10 @@
 #include "Base/Const/MathConstants.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Core/Computation/ProcessedSample.h"
-#include "Sample/Multilayer/IFresnelMap.h"
+#include "Sample/Fresnel/IFresnelMap.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 #include <cerf>
diff --git a/Core/Computation/SpecularComputation.cpp b/Core/Computation/SpecularComputation.cpp
index dc9186f2fd9..56ddae690cc 100644
--- a/Core/Computation/SpecularComputation.cpp
+++ b/Core/Computation/SpecularComputation.cpp
@@ -16,7 +16,7 @@
 #include "Core/Computation/ProcessedSample.h"
 #include "Core/Computation/ProgressHandler.h"
 #include "Core/Computation/SpecularStrategyBuilder.h"
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/SpecularSimulationElement.h"
 
 static_assert(std::is_copy_constructible<SpecularComputation>::value == false,
               "SpecularComputation should not be copy constructible");
diff --git a/Core/Computation/SpecularComputationTerm.cpp b/Core/Computation/SpecularComputationTerm.cpp
index 017d1143f60..1e9eedd9d6b 100644
--- a/Core/Computation/SpecularComputationTerm.cpp
+++ b/Core/Computation/SpecularComputationTerm.cpp
@@ -14,8 +14,8 @@
 
 #include "Core/Computation/SpecularComputationTerm.h"
 #include "Core/Computation/DelayedProgressCounter.h"
-#include "Sample/Multilayer/ISpecularStrategy.h"
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/ISpecularStrategy.h"
+#include "Sample/Specular/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 176c33eb570..c2452a49185 100644
--- a/Core/Computation/SpecularComputationTerm.h
+++ b/Core/Computation/SpecularComputationTerm.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_COMPUTATION_SPECULARCOMPUTATIONTERM_H
 #define BORNAGAIN_CORE_COMPUTATION_SPECULARCOMPUTATIONTERM_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include <memory>
 #include <vector>
 
diff --git a/Core/Computation/SpecularStrategyBuilder.cpp b/Core/Computation/SpecularStrategyBuilder.cpp
index 3af0d1ca4d5..04e92e7bcbf 100644
--- a/Core/Computation/SpecularStrategyBuilder.cpp
+++ b/Core/Computation/SpecularStrategyBuilder.cpp
@@ -14,10 +14,10 @@
 
 #include "Core/Computation/SpecularStrategyBuilder.h"
 #include "Sample/Multilayer/MultiLayerUtils.h"
-#include "Sample/Multilayer/SpecularMagneticNewNCStrategy.h"
-#include "Sample/Multilayer/SpecularMagneticNewTanhStrategy.h"
-#include "Sample/Multilayer/SpecularScalarNCStrategy.h"
-#include "Sample/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewNCStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewTanhStrategy.h"
+#include "Sample/Specular/SpecularScalarNCStrategy.h"
+#include "Sample/Specular/SpecularScalarTanhStrategy.h"
 
 std::unique_ptr<ISpecularStrategy> SpecularStrategyBuilder::build(const MultiLayer& sample,
                                                                   const bool magnetic)
diff --git a/Core/Computation/SpecularStrategyBuilder.h b/Core/Computation/SpecularStrategyBuilder.h
index a122ce6501c..be9fdf63f89 100644
--- a/Core/Computation/SpecularStrategyBuilder.h
+++ b/Core/Computation/SpecularStrategyBuilder.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_COMPUTATION_SPECULARSTRATEGYBUILDER_H
 #define BORNAGAIN_CORE_COMPUTATION_SPECULARSTRATEGYBUILDER_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 class SpecularStrategyBuilder
diff --git a/Core/Export/SampleLabelHandler.cpp b/Core/Export/SampleLabelHandler.cpp
index ba92509c32c..4e6d544836f 100644
--- a/Core/Export/SampleLabelHandler.cpp
+++ b/Core/Export/SampleLabelHandler.cpp
@@ -14,7 +14,7 @@
 
 #include "Core/Export/SampleLabelHandler.h"
 #include "Sample/Aggregate/IInterferenceFunction.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/MesoCrystal.h"
 #include "Sample/Particle/Particle.h"
diff --git a/Core/Export/SampleToPython.cpp b/Core/Export/SampleToPython.cpp
index 3300a5e7650..40d804c0ecd 100644
--- a/Core/Export/SampleToPython.cpp
+++ b/Core/Export/SampleToPython.cpp
@@ -22,7 +22,7 @@
 #include "Sample/Aggregate/ParticleLayout.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/Crystal.h"
 #include "Sample/Particle/MesoCrystal.h"
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index f9dccfb2167..69a33430752 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -27,7 +27,7 @@
 #include "Param/Distrib/Distributions.h"
 #include "Sample/Material/MaterialUtils.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/SpecularSimulationElement.h"
 #include "Sample/SampleBuilderEngine/ISampleBuilder.h"
 
 namespace
diff --git a/Device/Scan/AngularSpecScan.cpp b/Device/Scan/AngularSpecScan.cpp
index 6d86ed497ca..519bab4386b 100644
--- a/Device/Scan/AngularSpecScan.cpp
+++ b/Device/Scan/AngularSpecScan.cpp
@@ -19,7 +19,7 @@
 #include "Device/Beam/IFootprintFactor.h"
 #include "Device/Resolution/ScanResolution.h"
 #include "Param/Distrib/RangedDistributions.h"
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/SpecularSimulationElement.h"
 
 namespace
 {
diff --git a/Device/Scan/QSpecScan.cpp b/Device/Scan/QSpecScan.cpp
index 3e84a1fb119..28563ae4737 100644
--- a/Device/Scan/QSpecScan.cpp
+++ b/Device/Scan/QSpecScan.cpp
@@ -18,7 +18,7 @@
 #include "Base/Utils/PyFmt.h"
 #include "Device/Resolution/ScanResolution.h"
 #include "Param/Distrib/RangedDistributions.h"
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/SpecularSimulationElement.h"
 
 namespace
 {
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index c9c98606910..c075065b48b 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -60,7 +60,7 @@
 #include "Sample/Aggregate/InterferenceFunctions.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Particle/Particle.h"
 
 using namespace INodeUtils;
diff --git a/GUI/coregui/Models/TransformToDomain.h b/GUI/coregui/Models/TransformToDomain.h
index 9788cfb41a0..977e193db17 100644
--- a/GUI/coregui/Models/TransformToDomain.h
+++ b/GUI/coregui/Models/TransformToDomain.h
@@ -20,7 +20,7 @@
 #include "Sample/Aggregate/IInterferenceFunction.h"
 #include "Sample/Aggregate/ParticleLayout.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/IParticle.h"
 #include "Sample/Particle/ParticleDistribution.h"
diff --git a/Sample/Multilayer/FormFactorCoherentPart.cpp b/Sample/Fresnel/FormFactorCoherentPart.cpp
similarity index 94%
rename from Sample/Multilayer/FormFactorCoherentPart.cpp
rename to Sample/Fresnel/FormFactorCoherentPart.cpp
index 78ee426f3e8..6e987a8eb6b 100644
--- a/Sample/Multilayer/FormFactorCoherentPart.cpp
+++ b/Sample/Fresnel/FormFactorCoherentPart.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/FormFactorCoherentPart.cpp
+//! @file      Sample/Fresnel/FormFactorCoherentPart.cpp
 //! @brief     Implements class FormFactorCoherentPart.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/FormFactorCoherentPart.h"
+#include "Sample/Fresnel/FormFactorCoherentPart.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Sample/Material/WavevectorInfo.h"
-#include "Sample/Multilayer/IFresnelMap.h"
+#include "Sample/Fresnel/IFresnelMap.h"
 #include "Sample/Scattering/IFormFactor.h"
 
 FormFactorCoherentPart::FormFactorCoherentPart(IFormFactor* p_ff) : mP_ff(p_ff) {}
diff --git a/Sample/Multilayer/FormFactorCoherentPart.h b/Sample/Fresnel/FormFactorCoherentPart.h
similarity index 96%
rename from Sample/Multilayer/FormFactorCoherentPart.h
rename to Sample/Fresnel/FormFactorCoherentPart.h
index d63f75da2f7..10b51b7ef35 100644
--- a/Sample/Multilayer/FormFactorCoherentPart.h
+++ b/Sample/Fresnel/FormFactorCoherentPart.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/FormFactorCoherentPart.h
+//! @file      Sample/Fresnel/FormFactorCoherentPart.h
 //! @brief     Defines class FormFactorCoherentPart.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/FormFactorCoherentSum.cpp b/Sample/Fresnel/FormFactorCoherentSum.cpp
similarity index 94%
rename from Sample/Multilayer/FormFactorCoherentSum.cpp
rename to Sample/Fresnel/FormFactorCoherentSum.cpp
index a4141e3fee5..69fafb61fac 100644
--- a/Sample/Multilayer/FormFactorCoherentSum.cpp
+++ b/Sample/Fresnel/FormFactorCoherentSum.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/FormFactorCoherentSum.cpp
+//! @file      Sample/Fresnel/FormFactorCoherentSum.cpp
 //! @brief     Implements class FormFactorCoherentSum.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Base/Types/Exceptions.h"
 
diff --git a/Sample/Multilayer/FormFactorCoherentSum.h b/Sample/Fresnel/FormFactorCoherentSum.h
similarity index 93%
rename from Sample/Multilayer/FormFactorCoherentSum.h
rename to Sample/Fresnel/FormFactorCoherentSum.h
index afaef5d1852..504bbb89556 100644
--- a/Sample/Multilayer/FormFactorCoherentSum.h
+++ b/Sample/Fresnel/FormFactorCoherentSum.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/FormFactorCoherentSum.h
+//! @file      Sample/Fresnel/FormFactorCoherentSum.h
 //! @brief     Defines class FormFactorCoherentSum.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_FORMFACTORCOHERENTSUM_H
 #define BORNAGAIN_CORE_MULTILAYER_FORMFACTORCOHERENTSUM_H
 
-#include "Sample/Multilayer/FormFactorCoherentPart.h"
+#include "Sample/Fresnel/FormFactorCoherentPart.h"
 #include <vector>
 
 class SimulationElement;
diff --git a/Sample/Multilayer/IFresnelMap.cpp b/Sample/Fresnel/IFresnelMap.cpp
similarity index 87%
rename from Sample/Multilayer/IFresnelMap.cpp
rename to Sample/Fresnel/IFresnelMap.cpp
index e912910dbc5..5764576b35d 100644
--- a/Sample/Multilayer/IFresnelMap.cpp
+++ b/Sample/Fresnel/IFresnelMap.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/IFresnelMap.cpp
+//! @file      Sample/Fresnel/IFresnelMap.cpp
 //! @brief     Implements class IFresnelMap.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/IFresnelMap.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Fresnel/IFresnelMap.h"
+#include "Sample/Slice/Slice.h"
 
 IFresnelMap::IFresnelMap(std::unique_ptr<ISpecularStrategy> strategy)
     : m_use_cache(true), m_Strategy(std::move(strategy))
diff --git a/Sample/Multilayer/IFresnelMap.h b/Sample/Fresnel/IFresnelMap.h
similarity index 95%
rename from Sample/Multilayer/IFresnelMap.h
rename to Sample/Fresnel/IFresnelMap.h
index b611c56c3d6..0377ce8ba0b 100644
--- a/Sample/Multilayer/IFresnelMap.h
+++ b/Sample/Fresnel/IFresnelMap.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/IFresnelMap.h
+//! @file      Sample/Fresnel/IFresnelMap.h
 //! @brief     Defines class IFresnelMap.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_IFRESNELMAP_H
 #define BORNAGAIN_CORE_MULTILAYER_IFRESNELMAP_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include <memory>
 #include <vector>
 
diff --git a/Sample/Multilayer/MatrixFresnelMap.cpp b/Sample/Fresnel/MatrixFresnelMap.cpp
similarity index 93%
rename from Sample/Multilayer/MatrixFresnelMap.cpp
rename to Sample/Fresnel/MatrixFresnelMap.cpp
index f2b3417cc65..409267ca184 100644
--- a/Sample/Multilayer/MatrixFresnelMap.cpp
+++ b/Sample/Fresnel/MatrixFresnelMap.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/MatrixFresnelMap.cpp
+//! @file      Sample/Fresnel/MatrixFresnelMap.cpp
 //! @brief     Implements class MatrixFresnelMap.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/MatrixFresnelMap.h"
+#include "Sample/Fresnel/MatrixFresnelMap.h"
 #include "Base/Pixel/SimulationElement.h"
-#include "Sample/Multilayer/Slice.h"
-#include "Sample/Multilayer/SpecularMagneticOldStrategy.h"
+#include "Sample/Slice/Slice.h"
+#include "Sample/Specular/SpecularMagneticOldStrategy.h"
 #include <functional>
 
 MatrixFresnelMap::MatrixFresnelMap(std::unique_ptr<ISpecularStrategy> strategy)
diff --git a/Sample/Multilayer/MatrixFresnelMap.h b/Sample/Fresnel/MatrixFresnelMap.h
similarity index 94%
rename from Sample/Multilayer/MatrixFresnelMap.h
rename to Sample/Fresnel/MatrixFresnelMap.h
index d814136ab8a..8f6100ce864 100644
--- a/Sample/Multilayer/MatrixFresnelMap.h
+++ b/Sample/Fresnel/MatrixFresnelMap.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/MatrixFresnelMap.h
+//! @file      Sample/Fresnel/MatrixFresnelMap.h
 //! @brief     Defines class MatrixFresnelMap.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_MATRIXFRESNELMAP_H
 #define BORNAGAIN_CORE_MULTILAYER_MATRIXFRESNELMAP_H
 
-#include "Sample/Multilayer/IFresnelMap.h"
-#include "Sample/Multilayer/SpecularMagneticStrategy.h"
+#include "Sample/Fresnel/IFresnelMap.h"
+#include "Sample/Specular/SpecularMagneticStrategy.h"
 #include "Sample/RT/MatrixRTCoefficients.h"
 #include <cstddef>
 #include <memory>
diff --git a/Sample/Multilayer/ScalarFresnelMap.cpp b/Sample/Fresnel/ScalarFresnelMap.cpp
similarity index 95%
rename from Sample/Multilayer/ScalarFresnelMap.cpp
rename to Sample/Fresnel/ScalarFresnelMap.cpp
index b90dd82bf3d..8fdfb03e89a 100644
--- a/Sample/Multilayer/ScalarFresnelMap.cpp
+++ b/Sample/Fresnel/ScalarFresnelMap.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/ScalarFresnelMap.cpp
+//! @file      Sample/Fresnel/ScalarFresnelMap.cpp
 //! @brief     Implements class ScalarFresnelMap.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/ScalarFresnelMap.h"
+#include "Sample/Fresnel/ScalarFresnelMap.h"
 #include "Base/Pixel/SimulationElement.h"
 #include <functional>
 
diff --git a/Sample/Multilayer/ScalarFresnelMap.h b/Sample/Fresnel/ScalarFresnelMap.h
similarity index 95%
rename from Sample/Multilayer/ScalarFresnelMap.h
rename to Sample/Fresnel/ScalarFresnelMap.h
index e94da1133dd..244a4691e21 100644
--- a/Sample/Multilayer/ScalarFresnelMap.h
+++ b/Sample/Fresnel/ScalarFresnelMap.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/ScalarFresnelMap.h
+//! @file      Sample/Fresnel/ScalarFresnelMap.h
 //! @brief     Defines class ScalarFresnelMap.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SCALARFRESNELMAP_H
 #define BORNAGAIN_CORE_MULTILAYER_SCALARFRESNELMAP_H
 
-#include "Sample/Multilayer/IFresnelMap.h"
+#include "Sample/Fresnel/IFresnelMap.h"
 #include "Sample/RT/ScalarRTCoefficients.h"
 #include <cstddef>
 #include <unordered_map>
diff --git a/Sample/Multilayer/DecouplingApproximationStrategy.cpp b/Sample/Interference/DecouplingApproximationStrategy.cpp
similarity index 93%
rename from Sample/Multilayer/DecouplingApproximationStrategy.cpp
rename to Sample/Interference/DecouplingApproximationStrategy.cpp
index 682fd293f16..c57430887b6 100644
--- a/Sample/Multilayer/DecouplingApproximationStrategy.cpp
+++ b/Sample/Interference/DecouplingApproximationStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/DecouplingApproximationStrategy.cpp
+//! @file      Sample/Interference/DecouplingApproximationStrategy.cpp
 //! @brief     Implements class DecouplingApproximationStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/DecouplingApproximationStrategy.h"
+#include "Sample/Interference/DecouplingApproximationStrategy.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Base/Types/Exceptions.h"
 #include "Base/Utils/MathFunctions.h"
 #include "Param/Base/RealParameter.h"
 #include "Sample/Aggregate/IInterferenceFunction.h"
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
-#include "Sample/Multilayer/InterferenceFunctionUtils.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
+#include "Sample/Interference/InterferenceFunctionUtils.h"
 
 using InterferenceFunctionUtils::PrecomputePolarizedFormFactors;
 using InterferenceFunctionUtils::PrecomputeScalarFormFactors;
diff --git a/Sample/Multilayer/DecouplingApproximationStrategy.h b/Sample/Interference/DecouplingApproximationStrategy.h
similarity index 90%
rename from Sample/Multilayer/DecouplingApproximationStrategy.h
rename to Sample/Interference/DecouplingApproximationStrategy.h
index d114a8c1343..fc731275655 100644
--- a/Sample/Multilayer/DecouplingApproximationStrategy.h
+++ b/Sample/Interference/DecouplingApproximationStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/DecouplingApproximationStrategy.h
+//! @file      Sample/Interference/DecouplingApproximationStrategy.h
 //! @brief     Defines class DecouplingApproximationStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_DECOUPLINGAPPROXIMATIONSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_DECOUPLINGAPPROXIMATIONSTRATEGY_H
 
-#include "Sample/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Sample/Interference/IInterferenceFunctionStrategy.h"
 
 class SimulationElement;
 
diff --git a/Sample/Multilayer/IInterferenceFunctionStrategy.cpp b/Sample/Interference/IInterferenceFunctionStrategy.cpp
similarity index 94%
rename from Sample/Multilayer/IInterferenceFunctionStrategy.cpp
rename to Sample/Interference/IInterferenceFunctionStrategy.cpp
index 13ebdbd4d5b..f982fdf91ba 100644
--- a/Sample/Multilayer/IInterferenceFunctionStrategy.cpp
+++ b/Sample/Interference/IInterferenceFunctionStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/IInterferenceFunctionStrategy.cpp
+//! @file      Sample/Interference/IInterferenceFunctionStrategy.cpp
 //! @brief     Implements default behaviour of IInterferenceFunctionStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/IInterferenceFunctionStrategy.h"
+#include "Sample/Interference/IInterferenceFunctionStrategy.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Base/Types/Exceptions.h"
 #include "Base/Utils/IntegratorMCMiser.h"
 #include "Sample/Aggregate/InterferenceFunctionNone.h"
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
 
 IInterferenceFunctionStrategy::IInterferenceFunctionStrategy(const SimulationOptions& sim_params,
                                                              bool polarized)
diff --git a/Sample/Multilayer/IInterferenceFunctionStrategy.h b/Sample/Interference/IInterferenceFunctionStrategy.h
similarity index 97%
rename from Sample/Multilayer/IInterferenceFunctionStrategy.h
rename to Sample/Interference/IInterferenceFunctionStrategy.h
index d94980eb6c9..ecb80ad3545 100644
--- a/Sample/Multilayer/IInterferenceFunctionStrategy.h
+++ b/Sample/Interference/IInterferenceFunctionStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/IInterferenceFunctionStrategy.h
+//! @file      Sample/Interference/IInterferenceFunctionStrategy.h
 //! @brief     Defines class IInterferenceFunctionStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/InterferenceFunctionUtils.cpp b/Sample/Interference/InterferenceFunctionUtils.cpp
similarity index 88%
rename from Sample/Multilayer/InterferenceFunctionUtils.cpp
rename to Sample/Interference/InterferenceFunctionUtils.cpp
index d4dc2001ab2..4982beb3258 100644
--- a/Sample/Multilayer/InterferenceFunctionUtils.cpp
+++ b/Sample/Interference/InterferenceFunctionUtils.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/InterferenceFunctionUtils.cpp
+//! @file      Sample/Interference/InterferenceFunctionUtils.cpp
 //! @brief     Implements helper functions for InterferenceFunctions and Strategies.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/InterferenceFunctionUtils.h"
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
+#include "Sample/Interference/InterferenceFunctionUtils.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
 
 namespace InterferenceFunctionUtils
 {
diff --git a/Sample/Multilayer/InterferenceFunctionUtils.h b/Sample/Interference/InterferenceFunctionUtils.h
similarity index 95%
rename from Sample/Multilayer/InterferenceFunctionUtils.h
rename to Sample/Interference/InterferenceFunctionUtils.h
index 8aba9870623..f45b666bf22 100644
--- a/Sample/Multilayer/InterferenceFunctionUtils.h
+++ b/Sample/Interference/InterferenceFunctionUtils.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/InterferenceFunctionUtils.h
+//! @file      Sample/Interference/InterferenceFunctionUtils.h
 //! @brief     Defines helper functions for InterferenceFunctions and Strategies.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/SSCAHelper.cpp b/Sample/Interference/SSCAHelper.cpp
similarity index 95%
rename from Sample/Multilayer/SSCAHelper.cpp
rename to Sample/Interference/SSCAHelper.cpp
index 5cfcd42540e..c9bd8dee49b 100644
--- a/Sample/Multilayer/SSCAHelper.cpp
+++ b/Sample/Interference/SSCAHelper.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SSCAHelper.cpp
+//! @file      Sample/Interference/SSCAHelper.cpp
 //! @brief     Implements class SSCAHelper.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SSCAHelper.h"
+#include "Sample/Interference/SSCAHelper.h"
 #include "Base/Types/Exceptions.h"
 #include "Sample/Aggregate/InterferenceFunctionRadialParaCrystal.h"
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
 
 SSCAHelper::SSCAHelper(double kappa) : m_kappa(kappa), m_mean_radius{} {}
 
diff --git a/Sample/Multilayer/SSCAHelper.h b/Sample/Interference/SSCAHelper.h
similarity index 91%
rename from Sample/Multilayer/SSCAHelper.h
rename to Sample/Interference/SSCAHelper.h
index 23bfa292586..f96782a162b 100644
--- a/Sample/Multilayer/SSCAHelper.h
+++ b/Sample/Interference/SSCAHelper.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SSCAHelper.h
+//! @file      Sample/Interference/SSCAHelper.h
 //! @brief     Defines class SSCAHelper.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SSCAHELPER_H
 #define BORNAGAIN_CORE_MULTILAYER_SSCAHELPER_H
 
-#include "Sample/Multilayer/IInterferenceFunctionStrategy.h"
-#include "Sample/Multilayer/InterferenceFunctionUtils.h"
+#include "Sample/Interference/IInterferenceFunctionStrategy.h"
+#include "Sample/Interference/InterferenceFunctionUtils.h"
 #include <Eigen/StdVector>
 
 class FormFactorCoherentSum;
diff --git a/Sample/Multilayer/SSCApproximationStrategy.cpp b/Sample/Interference/SSCApproximationStrategy.cpp
similarity index 95%
rename from Sample/Multilayer/SSCApproximationStrategy.cpp
rename to Sample/Interference/SSCApproximationStrategy.cpp
index 58f916c3fb0..5f1eece3c3a 100644
--- a/Sample/Multilayer/SSCApproximationStrategy.cpp
+++ b/Sample/Interference/SSCApproximationStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SSCApproximationStrategy.cpp
+//! @file      Sample/Interference/SSCApproximationStrategy.cpp
 //! @brief     Implements class SSCApproximationStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SSCApproximationStrategy.h"
+#include "Sample/Interference/SSCApproximationStrategy.h"
 #include "Base/Pixel/SimulationElement.h"
 #include "Sample/Aggregate/IInterferenceFunction.h"
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
 
 using InterferenceFunctionUtils::PrecomputePolarizedFormFactors;
 using InterferenceFunctionUtils::PrecomputeScalarFormFactors;
diff --git a/Sample/Multilayer/SSCApproximationStrategy.h b/Sample/Interference/SSCApproximationStrategy.h
similarity index 92%
rename from Sample/Multilayer/SSCApproximationStrategy.h
rename to Sample/Interference/SSCApproximationStrategy.h
index 55a47f4bd54..a40fca106e1 100644
--- a/Sample/Multilayer/SSCApproximationStrategy.h
+++ b/Sample/Interference/SSCApproximationStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SSCApproximationStrategy.h
+//! @file      Sample/Interference/SSCApproximationStrategy.h
 //! @brief     Defines class SSCApproximationStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SSCAPPROXIMATIONSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SSCAPPROXIMATIONSTRATEGY_H
 
-#include "Sample/Multilayer/SSCAHelper.h"
+#include "Sample/Interference/SSCAHelper.h"
 
 class SimulationElement;
 
diff --git a/Sample/Multilayer/KzComputation.cpp b/Sample/Multilayer/KzComputation.cpp
index f7d05415ff5..33db86fd58c 100644
--- a/Sample/Multilayer/KzComputation.cpp
+++ b/Sample/Multilayer/KzComputation.cpp
@@ -14,7 +14,7 @@
 
 #include "Sample/Multilayer/KzComputation.h"
 #include "Base/Const/Units.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/Slice.h"
 
 namespace
 {
diff --git a/Sample/Multilayer/LayerInterface.cpp b/Sample/Multilayer/LayerInterface.cpp
index 273eae4305f..00888635781 100644
--- a/Sample/Multilayer/LayerInterface.cpp
+++ b/Sample/Multilayer/LayerInterface.cpp
@@ -14,7 +14,7 @@
 
 #include "Sample/Multilayer/LayerInterface.h"
 #include "Base/Types/Exceptions.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 
 LayerInterface::LayerInterface() : m_topLayer(nullptr), m_bottomLayer(nullptr)
 {
diff --git a/Sample/Multilayer/MultiLayer.cpp b/Sample/Multilayer/MultiLayer.cpp
index 8fe0d91050a..5c7ab7d7378 100644
--- a/Sample/Multilayer/MultiLayer.cpp
+++ b/Sample/Multilayer/MultiLayer.cpp
@@ -21,7 +21,7 @@
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerFillLimits.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayerUtils.h"
 
 MultiLayer::MultiLayer() : m_crossCorrLength(0)
diff --git a/Sample/Multilayer/LayerRoughness.cpp b/Sample/Slice/LayerRoughness.cpp
similarity index 96%
rename from Sample/Multilayer/LayerRoughness.cpp
rename to Sample/Slice/LayerRoughness.cpp
index 50ba3857723..4ee1742d5ee 100644
--- a/Sample/Multilayer/LayerRoughness.cpp
+++ b/Sample/Slice/LayerRoughness.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/LayerRoughness.cpp
+//! @file      Sample/Slice/LayerRoughness.cpp
 //! @brief     Implements class LayerRoughness.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Base/Const/MathConstants.h"
 #include "Param/Base/RealParameter.h"
 
diff --git a/Sample/Multilayer/LayerRoughness.h b/Sample/Slice/LayerRoughness.h
similarity index 97%
rename from Sample/Multilayer/LayerRoughness.h
rename to Sample/Slice/LayerRoughness.h
index 6f4114e5288..4273c963c79 100644
--- a/Sample/Multilayer/LayerRoughness.h
+++ b/Sample/Slice/LayerRoughness.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/LayerRoughness.h
+//! @file      Sample/Slice/LayerRoughness.h
 //! @brief     Defines class LayerRoughness.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/Slice.cpp b/Sample/Slice/Slice.cpp
similarity index 95%
rename from Sample/Multilayer/Slice.cpp
rename to Sample/Slice/Slice.cpp
index d253be011a6..a3e4c47a04d 100644
--- a/Sample/Multilayer/Slice.cpp
+++ b/Sample/Slice/Slice.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/Slice.cpp
+//! @file      Sample/Slice/Slice.cpp
 //! @brief     Implements class Slice.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/Slice.h"
 #include "Sample/Material/MaterialUtils.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 
 Slice::Slice(double thickness, const Material& material)
     : m_thickness{thickness}, m_material{material}, m_B_field{}, mP_top_roughness{nullptr}
diff --git a/Sample/Multilayer/Slice.h b/Sample/Slice/Slice.h
similarity index 98%
rename from Sample/Multilayer/Slice.h
rename to Sample/Slice/Slice.h
index dfce66ee597..1e159998f70 100644
--- a/Sample/Multilayer/Slice.h
+++ b/Sample/Slice/Slice.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/Slice.h
+//! @file      Sample/Slice/Slice.h
 //! @brief     Defines class Slice.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/SlicedFormFactorList.cpp b/Sample/Slice/SlicedFormFactorList.cpp
similarity index 97%
rename from Sample/Multilayer/SlicedFormFactorList.cpp
rename to Sample/Slice/SlicedFormFactorList.cpp
index 7ecd47e6471..e9fb8b2fa24 100644
--- a/Sample/Multilayer/SlicedFormFactorList.cpp
+++ b/Sample/Slice/SlicedFormFactorList.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SlicedFormFactorList.cpp
+//! @file      Sample/Slice/SlicedFormFactorList.cpp
 //! @brief     Defines class SlicedFormFactorList.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SlicedFormFactorList.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/SlicedFormFactorList.h"
+#include "Sample/Slice/Slice.h"
 #include "Sample/Particle/IParticle.h"
 #include "Sample/Particle/SlicedParticle.h"
 #include "Sample/Scattering/Rotations.h"
diff --git a/Sample/Multilayer/SlicedFormFactorList.h b/Sample/Slice/SlicedFormFactorList.h
similarity index 97%
rename from Sample/Multilayer/SlicedFormFactorList.h
rename to Sample/Slice/SlicedFormFactorList.h
index f66525721e3..ee05016bac4 100644
--- a/Sample/Multilayer/SlicedFormFactorList.h
+++ b/Sample/Slice/SlicedFormFactorList.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SlicedFormFactorList.h
+//! @file      Sample/Slice/SlicedFormFactorList.h
 //! @brief     Defines class SlicedFormFactorList.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/ISpecularStrategy.h b/Sample/Specular/ISpecularStrategy.h
similarity index 96%
rename from Sample/Multilayer/ISpecularStrategy.h
rename to Sample/Specular/ISpecularStrategy.h
index 9c9803667d5..c15e8f96ef8 100644
--- a/Sample/Multilayer/ISpecularStrategy.h
+++ b/Sample/Specular/ISpecularStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/ISpecularStrategy.h
+//! @file      Sample/Specular/ISpecularStrategy.h
 //! @brief     Defines and implements class ISpecularStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/Multilayer/SpecularMagneticNewNCStrategy.cpp b/Sample/Specular/SpecularMagneticNewNCStrategy.cpp
similarity index 96%
rename from Sample/Multilayer/SpecularMagneticNewNCStrategy.cpp
rename to Sample/Specular/SpecularMagneticNewNCStrategy.cpp
index 0a7eacebc46..bf9cc615ac2 100644
--- a/Sample/Multilayer/SpecularMagneticNewNCStrategy.cpp
+++ b/Sample/Specular/SpecularMagneticNewNCStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticNewNCStrategy.cpp
+//! @file      Sample/Specular/SpecularMagneticNewNCStrategy.cpp
 //! @brief     Implements class SpecularMagneticNewNCStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularMagneticNewNCStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewNCStrategy.h"
 
 namespace
 {
diff --git a/Sample/Multilayer/SpecularMagneticNewNCStrategy.h b/Sample/Specular/SpecularMagneticNewNCStrategy.h
similarity index 93%
rename from Sample/Multilayer/SpecularMagneticNewNCStrategy.h
rename to Sample/Specular/SpecularMagneticNewNCStrategy.h
index 048304c28a9..ab6c9fd0847 100644
--- a/Sample/Multilayer/SpecularMagneticNewNCStrategy.h
+++ b/Sample/Specular/SpecularMagneticNewNCStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticNewNCStrategy.h
+//! @file      Sample/Specular/SpecularMagneticNewNCStrategy.h
 //! @brief     Defines class SpecularMagneticNewNCStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICNEWNCSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICNEWNCSTRATEGY_H
 
-#include "Sample/Multilayer/SpecularMagneticNewStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewStrategy.h"
 #include <memory>
 #include <vector>
 
diff --git a/Sample/Multilayer/SpecularMagneticNewStrategy.cpp b/Sample/Specular/SpecularMagneticNewStrategy.cpp
similarity index 97%
rename from Sample/Multilayer/SpecularMagneticNewStrategy.cpp
rename to Sample/Specular/SpecularMagneticNewStrategy.cpp
index 72401f7eef2..11d0ed8b0e9 100644
--- a/Sample/Multilayer/SpecularMagneticNewStrategy.cpp
+++ b/Sample/Specular/SpecularMagneticNewStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticNewStrategy.cpp
+//! @file      Sample/Specular/SpecularMagneticNewStrategy.cpp
 //! @brief     Implements class SpecularMagneticNewStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularMagneticNewStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewStrategy.h"
 #include "Base/Const/PhysicalConstants.h"
 #include "Sample/Multilayer/KzComputation.h"
-#include "Sample/Multilayer/LayerRoughness.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/LayerRoughness.h"
+#include "Sample/Slice/Slice.h"
 
 namespace
 {
diff --git a/Sample/Multilayer/SpecularMagneticNewStrategy.h b/Sample/Specular/SpecularMagneticNewStrategy.h
similarity index 95%
rename from Sample/Multilayer/SpecularMagneticNewStrategy.h
rename to Sample/Specular/SpecularMagneticNewStrategy.h
index 3f165cb09ee..0cbb8077896 100644
--- a/Sample/Multilayer/SpecularMagneticNewStrategy.h
+++ b/Sample/Specular/SpecularMagneticNewStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticNewStrategy.h
+//! @file      Sample/Specular/SpecularMagneticNewStrategy.h
 //! @brief     Defines class SpecularMagneticNewStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICNEWSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICNEWSTRATEGY_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include "Sample/RT/MatrixRTCoefficients_v3.h"
 #include <memory>
 #include <vector>
diff --git a/Sample/Multilayer/SpecularMagneticNewTanhStrategy.cpp b/Sample/Specular/SpecularMagneticNewTanhStrategy.cpp
similarity index 95%
rename from Sample/Multilayer/SpecularMagneticNewTanhStrategy.cpp
rename to Sample/Specular/SpecularMagneticNewTanhStrategy.cpp
index 31c2c6d928f..1b6677960c8 100644
--- a/Sample/Multilayer/SpecularMagneticNewTanhStrategy.cpp
+++ b/Sample/Specular/SpecularMagneticNewTanhStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticNewTanhStrategy.cpp
+//! @file      Sample/Specular/SpecularMagneticNewTanhStrategy.cpp
 //! @brief     Implements class SpecularMagneticNewTanhStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularMagneticNewTanhStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewTanhStrategy.h"
 #include "Base/Const/MathConstants.h"
 #include "Base/Utils/MathFunctions.h"
 
diff --git a/Sample/Multilayer/SpecularMagneticNewTanhStrategy.h b/Sample/Specular/SpecularMagneticNewTanhStrategy.h
similarity index 92%
rename from Sample/Multilayer/SpecularMagneticNewTanhStrategy.h
rename to Sample/Specular/SpecularMagneticNewTanhStrategy.h
index 4266f481d56..509871a6ad0 100644
--- a/Sample/Multilayer/SpecularMagneticNewTanhStrategy.h
+++ b/Sample/Specular/SpecularMagneticNewTanhStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticNewTanhStrategy.h
+//! @file      Sample/Specular/SpecularMagneticNewTanhStrategy.h
 //! @brief     Defines class SpecularMagneticNewTanhStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICNEWTANHSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICNEWTANHSTRATEGY_H
 
-#include "Sample/Multilayer/SpecularMagneticNewStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewStrategy.h"
 
 //! Implements the magnetic Fresnel computation with the analytical Tanh roughness
 //!
diff --git a/Sample/Multilayer/SpecularMagneticOldStrategy.cpp b/Sample/Specular/SpecularMagneticOldStrategy.cpp
similarity index 97%
rename from Sample/Multilayer/SpecularMagneticOldStrategy.cpp
rename to Sample/Specular/SpecularMagneticOldStrategy.cpp
index 657a9ea7ac6..f125ff6b299 100644
--- a/Sample/Multilayer/SpecularMagneticOldStrategy.cpp
+++ b/Sample/Specular/SpecularMagneticOldStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticOldStrategy.cpp
+//! @file      Sample/Specular/SpecularMagneticOldStrategy.cpp
 //! @brief     Implements class SpecularMagneticOldStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularMagneticOldStrategy.h"
+#include "Sample/Specular/SpecularMagneticOldStrategy.h"
 #include "Sample/Material/WavevectorInfo.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/Slice.h"
 #include <Eigen/LU>
 
 namespace
diff --git a/Sample/Multilayer/SpecularMagneticOldStrategy.h b/Sample/Specular/SpecularMagneticOldStrategy.h
similarity index 92%
rename from Sample/Multilayer/SpecularMagneticOldStrategy.h
rename to Sample/Specular/SpecularMagneticOldStrategy.h
index 540c0d01d05..b8f57caa081 100644
--- a/Sample/Multilayer/SpecularMagneticOldStrategy.h
+++ b/Sample/Specular/SpecularMagneticOldStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticOldStrategy.h
+//! @file      Sample/Specular/SpecularMagneticOldStrategy.h
 //! @brief     Defines class SpecularMagneticOldStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICOLDSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICOLDSTRATEGY_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include "Sample/RT/MatrixRTCoefficients.h"
 #include <memory>
 #include <vector>
diff --git a/Sample/Multilayer/SpecularMagneticStrategy.cpp b/Sample/Specular/SpecularMagneticStrategy.cpp
similarity index 98%
rename from Sample/Multilayer/SpecularMagneticStrategy.cpp
rename to Sample/Specular/SpecularMagneticStrategy.cpp
index 54ff74c83d1..76856cc141e 100644
--- a/Sample/Multilayer/SpecularMagneticStrategy.cpp
+++ b/Sample/Specular/SpecularMagneticStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticStrategy.cpp
+//! @file      Sample/Specular/SpecularMagneticStrategy.cpp
 //! @brief     Implements class SpecularMagneticStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,10 +12,10 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularMagneticStrategy.h"
+#include "Sample/Specular/SpecularMagneticStrategy.h"
 #include "Base/Const/PhysicalConstants.h"
 #include "Sample/Multilayer/KzComputation.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/Slice.h"
 
 namespace
 {
diff --git a/Sample/Multilayer/SpecularMagneticStrategy.h b/Sample/Specular/SpecularMagneticStrategy.h
similarity index 96%
rename from Sample/Multilayer/SpecularMagneticStrategy.h
rename to Sample/Specular/SpecularMagneticStrategy.h
index 3c65b845641..faad65c4814 100644
--- a/Sample/Multilayer/SpecularMagneticStrategy.h
+++ b/Sample/Specular/SpecularMagneticStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularMagneticStrategy.h
+//! @file      Sample/Specular/SpecularMagneticStrategy.h
 //! @brief     Defines class SpecularMagneticStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARMAGNETICSTRATEGY_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include "Sample/RT/MatrixRTCoefficients_v2.h"
 #include <memory>
 #include <vector>
diff --git a/Sample/Multilayer/SpecularScalarNCStrategy.cpp b/Sample/Specular/SpecularScalarNCStrategy.cpp
similarity index 91%
rename from Sample/Multilayer/SpecularScalarNCStrategy.cpp
rename to Sample/Specular/SpecularScalarNCStrategy.cpp
index 71345efff3f..27bd36d4dc3 100644
--- a/Sample/Multilayer/SpecularScalarNCStrategy.cpp
+++ b/Sample/Specular/SpecularScalarNCStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularScalarNCStrategy.cpp
+//! @file      Sample/Specular/SpecularScalarNCStrategy.cpp
 //! @brief     Implements class SpecularScalarNCStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularScalarNCStrategy.h"
+#include "Sample/Specular/SpecularScalarNCStrategy.h"
 #include <Eigen/Dense>
 
 std::pair<complex_t, complex_t> SpecularScalarNCStrategy::transition(complex_t kzi, complex_t kzi1,
diff --git a/Sample/Multilayer/SpecularScalarNCStrategy.h b/Sample/Specular/SpecularScalarNCStrategy.h
similarity index 93%
rename from Sample/Multilayer/SpecularScalarNCStrategy.h
rename to Sample/Specular/SpecularScalarNCStrategy.h
index cb360bd144b..ff99d9e22ad 100644
--- a/Sample/Multilayer/SpecularScalarNCStrategy.h
+++ b/Sample/Specular/SpecularScalarNCStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularScalarNCStrategy.h
+//! @file      Sample/Specular/SpecularScalarNCStrategy.h
 //! @brief     Defines class SpecularScalarNCStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARSCALARNCSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARSCALARNCSTRATEGY_H
 
-#include "Sample/Multilayer/SpecularScalarStrategy.h"
+#include "Sample/Specular/SpecularScalarStrategy.h"
 
 class Slice;
 
diff --git a/Sample/Multilayer/SpecularScalarStrategy.cpp b/Sample/Specular/SpecularScalarStrategy.cpp
similarity index 95%
rename from Sample/Multilayer/SpecularScalarStrategy.cpp
rename to Sample/Specular/SpecularScalarStrategy.cpp
index bd448fdfdf3..967d5ecc30c 100644
--- a/Sample/Multilayer/SpecularScalarStrategy.cpp
+++ b/Sample/Specular/SpecularScalarStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularScalarStrategy.cpp
+//! @file      Sample/Specular/SpecularScalarStrategy.cpp
 //! @brief     Implements class SpecularScalarStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularScalarStrategy.h"
+#include "Sample/Specular/SpecularScalarStrategy.h"
 #include "Sample/Multilayer/KzComputation.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
-#include "Sample/Multilayer/Slice.h"
+#include "Sample/Slice/LayerRoughness.h"
+#include "Sample/Slice/Slice.h"
 #include <Eigen/Dense>
 #include <stdexcept>
 
diff --git a/Sample/Multilayer/SpecularScalarStrategy.h b/Sample/Specular/SpecularScalarStrategy.h
similarity index 95%
rename from Sample/Multilayer/SpecularScalarStrategy.h
rename to Sample/Specular/SpecularScalarStrategy.h
index 7d360b38673..a5d6f9b5e58 100644
--- a/Sample/Multilayer/SpecularScalarStrategy.h
+++ b/Sample/Specular/SpecularScalarStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularScalarStrategy.h
+//! @file      Sample/Specular/SpecularScalarStrategy.h
 //! @brief     Defines class SpecularScalarStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARSCALARSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARSCALARSTRATEGY_H
 
-#include "Sample/Multilayer/ISpecularStrategy.h"
+#include "Sample/Specular/ISpecularStrategy.h"
 #include "Sample/RT/ScalarRTCoefficients.h"
 #include <memory>
 #include <vector>
diff --git a/Sample/Multilayer/SpecularScalarTanhStrategy.cpp b/Sample/Specular/SpecularScalarTanhStrategy.cpp
similarity index 91%
rename from Sample/Multilayer/SpecularScalarTanhStrategy.cpp
rename to Sample/Specular/SpecularScalarTanhStrategy.cpp
index ecdf36f3fc0..85d32293046 100644
--- a/Sample/Multilayer/SpecularScalarTanhStrategy.cpp
+++ b/Sample/Specular/SpecularScalarTanhStrategy.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularScalarTanhStrategy.cpp
+//! @file      Sample/Specular/SpecularScalarTanhStrategy.cpp
 //! @brief     Implements class SpecularScalarTanhStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Sample/Specular/SpecularScalarTanhStrategy.h"
 #include "Base/Const/MathConstants.h"
 #include "Base/Utils/MathFunctions.h"
 #include <Eigen/Dense>
diff --git a/Sample/Multilayer/SpecularScalarTanhStrategy.h b/Sample/Specular/SpecularScalarTanhStrategy.h
similarity index 92%
rename from Sample/Multilayer/SpecularScalarTanhStrategy.h
rename to Sample/Specular/SpecularScalarTanhStrategy.h
index 315a087d0a9..cc1434ffcfc 100644
--- a/Sample/Multilayer/SpecularScalarTanhStrategy.h
+++ b/Sample/Specular/SpecularScalarTanhStrategy.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularScalarTanhStrategy.h
+//! @file      Sample/Specular/SpecularScalarTanhStrategy.h
 //! @brief     Defines class SpecularScalarTanhStrategy.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARSCALARTANHSTRATEGY_H
 #define BORNAGAIN_CORE_MULTILAYER_SPECULARSCALARTANHSTRATEGY_H
 
-#include "Sample/Multilayer/SpecularScalarStrategy.h"
+#include "Sample/Specular/SpecularScalarStrategy.h"
 
 class Slice;
 
diff --git a/Sample/Multilayer/SpecularSimulationElement.cpp b/Sample/Specular/SpecularSimulationElement.cpp
similarity index 95%
rename from Sample/Multilayer/SpecularSimulationElement.cpp
rename to Sample/Specular/SpecularSimulationElement.cpp
index a619335b0c6..b07f6187956 100644
--- a/Sample/Multilayer/SpecularSimulationElement.cpp
+++ b/Sample/Specular/SpecularSimulationElement.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularSimulationElement.cpp
+//! @file      Sample/Specular/SpecularSimulationElement.cpp
 //! @brief     Implements the class SpecularSimulationElement.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/SpecularSimulationElement.h"
 #include "Sample/Multilayer/KzComputation.h"
 
 SpecularSimulationElement::SpecularSimulationElement(double kz)
diff --git a/Sample/Multilayer/SpecularSimulationElement.h b/Sample/Specular/SpecularSimulationElement.h
similarity index 97%
rename from Sample/Multilayer/SpecularSimulationElement.h
rename to Sample/Specular/SpecularSimulationElement.h
index 0ea38d687de..2c05eb8c774 100644
--- a/Sample/Multilayer/SpecularSimulationElement.h
+++ b/Sample/Specular/SpecularSimulationElement.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Sample/Multilayer/SpecularSimulationElement.h
+//! @file      Sample/Specular/SpecularSimulationElement.h
 //! @brief     Declares the class SpecularSimulationElement.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Sample/StandardSamples/FeNiBilayerBuilder.cpp b/Sample/StandardSamples/FeNiBilayerBuilder.cpp
index 7f1dcf7f72f..077a039cedf 100644
--- a/Sample/StandardSamples/FeNiBilayerBuilder.cpp
+++ b/Sample/StandardSamples/FeNiBilayerBuilder.cpp
@@ -18,7 +18,7 @@
 #include "Base/Const/Units.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 namespace
diff --git a/Sample/StandardSamples/MagneticLayersBuilder.cpp b/Sample/StandardSamples/MagneticLayersBuilder.cpp
index 013c5aa42b9..43c731e626e 100644
--- a/Sample/StandardSamples/MagneticLayersBuilder.cpp
+++ b/Sample/StandardSamples/MagneticLayersBuilder.cpp
@@ -19,7 +19,7 @@
 #include "Sample/HardParticle/FormFactorFullSphere.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/Particle.h"
 
diff --git a/Sample/StandardSamples/MagneticParticlesBuilder.cpp b/Sample/StandardSamples/MagneticParticlesBuilder.cpp
index 036729e520e..69aaff490c3 100644
--- a/Sample/StandardSamples/MagneticParticlesBuilder.cpp
+++ b/Sample/StandardSamples/MagneticParticlesBuilder.cpp
@@ -20,7 +20,7 @@
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/Particle.h"
 
diff --git a/Sample/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp b/Sample/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
index dc27385fa3c..d034be9822c 100644
--- a/Sample/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
+++ b/Sample/StandardSamples/MultiLayerWithNCRoughnessBuilder.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "Sample/StandardSamples/MultiLayerWithNCRoughnessBuilder.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 MultiLayer* MultiLayerWithNCRoughnessBuilder::buildSample() const
diff --git a/Sample/StandardSamples/MultiLayerWithRoughnessBuilder.cpp b/Sample/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
index d87c52e0700..4b8b079695a 100644
--- a/Sample/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
+++ b/Sample/StandardSamples/MultiLayerWithRoughnessBuilder.cpp
@@ -16,7 +16,7 @@
 #include "Base/Const/Units.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 MultiLayer* MultiLayerWithRoughnessBuilder::buildSample() const
diff --git a/Sample/StandardSamples/ResonatorBuilder.cpp b/Sample/StandardSamples/ResonatorBuilder.cpp
index 4b3cdc03367..e56043da779 100644
--- a/Sample/StandardSamples/ResonatorBuilder.cpp
+++ b/Sample/StandardSamples/ResonatorBuilder.cpp
@@ -16,7 +16,7 @@
 #include "Base/Const/Units.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include <memory>
 
diff --git a/Sample/StandardSamples/ThickAbsorptiveSampleBuilder.cpp b/Sample/StandardSamples/ThickAbsorptiveSampleBuilder.cpp
index c789f7505f6..b195a84fe47 100644
--- a/Sample/StandardSamples/ThickAbsorptiveSampleBuilder.cpp
+++ b/Sample/StandardSamples/ThickAbsorptiveSampleBuilder.cpp
@@ -16,7 +16,7 @@
 #include "Base/Const/Units.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 
 MultiLayer* ThickAbsorptiveSampleBuilder::buildSample() const
diff --git a/Sample/StandardSamples/TwoLayerRoughnessBuilder.cpp b/Sample/StandardSamples/TwoLayerRoughnessBuilder.cpp
index f49ef6d2cd7..33aa51469fb 100644
--- a/Sample/StandardSamples/TwoLayerRoughnessBuilder.cpp
+++ b/Sample/StandardSamples/TwoLayerRoughnessBuilder.cpp
@@ -15,7 +15,7 @@
 #include "Sample/StandardSamples/TwoLayerRoughnessBuilder.h"
 #include "Base/Const/Units.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/StandardSamples/ReferenceMaterials.h"
 
diff --git a/Tests/Performance/Core/Mesocrystal.cpp b/Tests/Performance/Core/Mesocrystal.cpp
index 0414806c479..9f35e2277c5 100644
--- a/Tests/Performance/Core/Mesocrystal.cpp
+++ b/Tests/Performance/Core/Mesocrystal.cpp
@@ -21,7 +21,7 @@
 #include "Sample/Lattice/ISelectionRule.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/Crystal.h"
 #include "Sample/Particle/Particle.h"
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularMagneticOldTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularMagneticOldTest.cpp
index 2dc051cb59a..da7665262c0 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularMagneticOldTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularMagneticOldTest.cpp
@@ -3,8 +3,8 @@
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "Sample/Multilayer/SpecularMagneticOldStrategy.h"
-#include "Sample/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Sample/Specular/SpecularMagneticOldStrategy.h"
+#include "Sample/Specular/SpecularScalarTanhStrategy.h"
 #include "Sample/RT/SimulationOptions.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp
index e5c8b3a1d9d..15e4bc609de 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp
@@ -4,9 +4,9 @@
 #include "Sample/Multilayer/KzComputation.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "Sample/Multilayer/SpecularMagneticNewTanhStrategy.h"
-#include "Sample/Multilayer/SpecularMagneticStrategy.h"
-#include "Sample/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Sample/Specular/SpecularMagneticNewTanhStrategy.h"
+#include "Sample/Specular/SpecularMagneticStrategy.h"
+#include "Sample/Specular/SpecularScalarTanhStrategy.h"
 #include "Sample/RT/SimulationOptions.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <utility>
diff --git a/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp
index 928bbfc2d0e..50f90ad8e86 100644
--- a/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp
+++ b/Tests/UnitTests/Core/Fresnel/SpecularScanTest.cpp
@@ -5,7 +5,7 @@
 #include "Device/Scan/AngularSpecScan.h"
 #include "Device/Scan/QSpecScan.h"
 #include "Param/Distrib/RangedDistributions.h"
-#include "Sample/Multilayer/SpecularSimulationElement.h"
+#include "Sample/Specular/SpecularSimulationElement.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 class SpecularScanTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp b/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp
index 4fe55b01803..6e046957024 100644
--- a/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp
+++ b/Tests/UnitTests/Core/Sample/FormFactorCoherentSumTest.cpp
@@ -1,4 +1,4 @@
-#include "Sample/Multilayer/FormFactorCoherentSum.h"
+#include "Sample/Fresnel/FormFactorCoherentSum.h"
 #include "Base/Types/Exceptions.h"
 #include "Sample/HardParticle/FormFactorDot.h"
 #include "Tests/GTestWrapper/google_test.h"
diff --git a/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp b/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
index 9332428e469..1826c2b1855 100644
--- a/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerInterfaceTest.cpp
@@ -1,7 +1,7 @@
 #include "Sample/Multilayer/LayerInterface.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp b/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
index b43f0cd3f9d..4e8745cc7ea 100644
--- a/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
+++ b/Tests/UnitTests/Core/Sample/LayerRoughnessTest.cpp
@@ -1,4 +1,4 @@
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Param/Varia/ParameterPattern.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
index 194ea707e1b..20e925cfa73 100644
--- a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
@@ -5,7 +5,7 @@
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayerUtils.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/UnitTests/Core/Sample/RTTest.cpp b/Tests/UnitTests/Core/Sample/RTTest.cpp
index baccb5014f1..2eb851e9c50 100644
--- a/Tests/UnitTests/Core/Sample/RTTest.cpp
+++ b/Tests/UnitTests/Core/Sample/RTTest.cpp
@@ -4,9 +4,9 @@
 #include "Sample/Material/MaterialFactoryFuncs.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "Sample/Multilayer/SpecularScalarTanhStrategy.h"
+#include "Sample/Specular/SpecularScalarTanhStrategy.h"
 #include "Sample/RT/SimulationOptions.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Wrap/swig/libBornAgainSample.i b/Wrap/swig/libBornAgainSample.i
index bcd3f15cb63..cf9d6f873c0 100644
--- a/Wrap/swig/libBornAgainSample.i
+++ b/Wrap/swig/libBornAgainSample.i
@@ -94,7 +94,7 @@
 #include "Sample/Material/WavevectorInfo.h"
 #include "Sample/Multilayer/Layer.h"
 #include "Sample/Multilayer/LayerInterface.h"
-#include "Sample/Multilayer/LayerRoughness.h"
+#include "Sample/Slice/LayerRoughness.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/Particle/Crystal.h"
 #include "Sample/Particle/FormFactorCrystal.h"
@@ -195,7 +195,7 @@
 %include "Sample/Aggregate/ParticleLayout.h"
 
 %include "Sample/Multilayer/Layer.h"
-%include "Sample/Multilayer/LayerRoughness.h"
+%include "Sample/Slice/LayerRoughness.h"
 %include "Sample/Multilayer/MultiLayer.h"
 
 // SWIG workaround for using axes units the same way as they are used in cpp files
-- 
GitLab