diff --git a/Core/Aggregates/DecouplingApproximationStrategy.cpp b/Core/Aggregate/DecouplingApproximationStrategy.cpp
similarity index 100%
rename from Core/Aggregates/DecouplingApproximationStrategy.cpp
rename to Core/Aggregate/DecouplingApproximationStrategy.cpp
diff --git a/Core/Aggregates/DecouplingApproximationStrategy.h b/Core/Aggregate/DecouplingApproximationStrategy.h
similarity index 100%
rename from Core/Aggregates/DecouplingApproximationStrategy.h
rename to Core/Aggregate/DecouplingApproximationStrategy.h
diff --git a/Core/Aggregates/FTDecayFunctions.cpp b/Core/Aggregate/FTDecayFunctions.cpp
similarity index 100%
rename from Core/Aggregates/FTDecayFunctions.cpp
rename to Core/Aggregate/FTDecayFunctions.cpp
diff --git a/Core/Aggregates/FTDecayFunctions.h b/Core/Aggregate/FTDecayFunctions.h
similarity index 100%
rename from Core/Aggregates/FTDecayFunctions.h
rename to Core/Aggregate/FTDecayFunctions.h
diff --git a/Core/Aggregates/FTDistributions.cpp b/Core/Aggregate/FTDistributions.cpp
similarity index 100%
rename from Core/Aggregates/FTDistributions.cpp
rename to Core/Aggregate/FTDistributions.cpp
diff --git a/Core/Aggregates/FTDistributions.h b/Core/Aggregate/FTDistributions.h
similarity index 100%
rename from Core/Aggregates/FTDistributions.h
rename to Core/Aggregate/FTDistributions.h
diff --git a/Core/Aggregates/IInterferenceFunction.cpp b/Core/Aggregate/IInterferenceFunction.cpp
similarity index 100%
rename from Core/Aggregates/IInterferenceFunction.cpp
rename to Core/Aggregate/IInterferenceFunction.cpp
diff --git a/Core/Aggregates/IInterferenceFunction.h b/Core/Aggregate/IInterferenceFunction.h
similarity index 100%
rename from Core/Aggregates/IInterferenceFunction.h
rename to Core/Aggregate/IInterferenceFunction.h
diff --git a/Core/Aggregates/IInterferenceFunctionStrategy.cpp b/Core/Aggregate/IInterferenceFunctionStrategy.cpp
similarity index 100%
rename from Core/Aggregates/IInterferenceFunctionStrategy.cpp
rename to Core/Aggregate/IInterferenceFunctionStrategy.cpp
diff --git a/Core/Aggregates/IInterferenceFunctionStrategy.h b/Core/Aggregate/IInterferenceFunctionStrategy.h
similarity index 100%
rename from Core/Aggregates/IInterferenceFunctionStrategy.h
rename to Core/Aggregate/IInterferenceFunctionStrategy.h
diff --git a/Core/Aggregates/ILayout.h b/Core/Aggregate/ILayout.h
similarity index 100%
rename from Core/Aggregates/ILayout.h
rename to Core/Aggregate/ILayout.h
diff --git a/Core/Aggregates/InterferenceFunction1DLattice.cpp b/Core/Aggregate/InterferenceFunction1DLattice.cpp
similarity index 100%
rename from Core/Aggregates/InterferenceFunction1DLattice.cpp
rename to Core/Aggregate/InterferenceFunction1DLattice.cpp
diff --git a/Core/Aggregates/InterferenceFunction1DLattice.h b/Core/Aggregate/InterferenceFunction1DLattice.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunction1DLattice.h
rename to Core/Aggregate/InterferenceFunction1DLattice.h
diff --git a/Core/Aggregates/InterferenceFunction2DLattice.cpp b/Core/Aggregate/InterferenceFunction2DLattice.cpp
similarity index 100%
rename from Core/Aggregates/InterferenceFunction2DLattice.cpp
rename to Core/Aggregate/InterferenceFunction2DLattice.cpp
diff --git a/Core/Aggregates/InterferenceFunction2DLattice.h b/Core/Aggregate/InterferenceFunction2DLattice.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunction2DLattice.h
rename to Core/Aggregate/InterferenceFunction2DLattice.h
diff --git a/Core/Aggregates/InterferenceFunction2DParaCrystal.cpp b/Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
similarity index 100%
rename from Core/Aggregates/InterferenceFunction2DParaCrystal.cpp
rename to Core/Aggregate/InterferenceFunction2DParaCrystal.cpp
diff --git a/Core/Aggregates/InterferenceFunction2DParaCrystal.h b/Core/Aggregate/InterferenceFunction2DParaCrystal.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunction2DParaCrystal.h
rename to Core/Aggregate/InterferenceFunction2DParaCrystal.h
diff --git a/Core/Aggregates/InterferenceFunctionNone.cpp b/Core/Aggregate/InterferenceFunctionNone.cpp
similarity index 100%
rename from Core/Aggregates/InterferenceFunctionNone.cpp
rename to Core/Aggregate/InterferenceFunctionNone.cpp
diff --git a/Core/Aggregates/InterferenceFunctionNone.h b/Core/Aggregate/InterferenceFunctionNone.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunctionNone.h
rename to Core/Aggregate/InterferenceFunctionNone.h
diff --git a/Core/Aggregates/InterferenceFunctionRadialParaCrystal.cpp b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
similarity index 100%
rename from Core/Aggregates/InterferenceFunctionRadialParaCrystal.cpp
rename to Core/Aggregate/InterferenceFunctionRadialParaCrystal.cpp
diff --git a/Core/Aggregates/InterferenceFunctionRadialParaCrystal.h b/Core/Aggregate/InterferenceFunctionRadialParaCrystal.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunctionRadialParaCrystal.h
rename to Core/Aggregate/InterferenceFunctionRadialParaCrystal.h
diff --git a/Core/Aggregates/InterferenceFunctionStrategies.h b/Core/Aggregate/InterferenceFunctionStrategies.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunctionStrategies.h
rename to Core/Aggregate/InterferenceFunctionStrategies.h
diff --git a/Core/Aggregates/InterferenceFunctions.h b/Core/Aggregate/InterferenceFunctions.h
similarity index 100%
rename from Core/Aggregates/InterferenceFunctions.h
rename to Core/Aggregate/InterferenceFunctions.h
diff --git a/Core/Aggregates/ParticleLayout.cpp b/Core/Aggregate/ParticleLayout.cpp
similarity index 100%
rename from Core/Aggregates/ParticleLayout.cpp
rename to Core/Aggregate/ParticleLayout.cpp
diff --git a/Core/Aggregates/ParticleLayout.h b/Core/Aggregate/ParticleLayout.h
similarity index 100%
rename from Core/Aggregates/ParticleLayout.h
rename to Core/Aggregate/ParticleLayout.h
diff --git a/Core/Aggregates/SizeSpacingCorrelationApproximationStrategy.cpp b/Core/Aggregate/SizeSpacingCorrelationApproximationStrategy.cpp
similarity index 100%
rename from Core/Aggregates/SizeSpacingCorrelationApproximationStrategy.cpp
rename to Core/Aggregate/SizeSpacingCorrelationApproximationStrategy.cpp
diff --git a/Core/Aggregates/SizeSpacingCorrelationApproximationStrategy.h b/Core/Aggregate/SizeSpacingCorrelationApproximationStrategy.h
similarity index 100%
rename from Core/Aggregates/SizeSpacingCorrelationApproximationStrategy.h
rename to Core/Aggregate/SizeSpacingCorrelationApproximationStrategy.h
diff --git a/Core/Bins/Bin.cpp b/Core/Binning/Bin.cpp
similarity index 100%
rename from Core/Bins/Bin.cpp
rename to Core/Binning/Bin.cpp
diff --git a/Core/Bins/Bin.h b/Core/Binning/Bin.h
similarity index 100%
rename from Core/Bins/Bin.h
rename to Core/Binning/Bin.h
diff --git a/Core/Bins/ConstKBinAxis.cpp b/Core/Binning/ConstKBinAxis.cpp
similarity index 100%
rename from Core/Bins/ConstKBinAxis.cpp
rename to Core/Binning/ConstKBinAxis.cpp
diff --git a/Core/Bins/ConstKBinAxis.h b/Core/Binning/ConstKBinAxis.h
similarity index 100%
rename from Core/Bins/ConstKBinAxis.h
rename to Core/Binning/ConstKBinAxis.h
diff --git a/Core/Bins/CustomBinAxis.cpp b/Core/Binning/CustomBinAxis.cpp
similarity index 100%
rename from Core/Bins/CustomBinAxis.cpp
rename to Core/Binning/CustomBinAxis.cpp
diff --git a/Core/Bins/CustomBinAxis.h b/Core/Binning/CustomBinAxis.h
similarity index 100%
rename from Core/Bins/CustomBinAxis.h
rename to Core/Binning/CustomBinAxis.h
diff --git a/Core/Bins/FixedBinAxis.cpp b/Core/Binning/FixedBinAxis.cpp
similarity index 100%
rename from Core/Bins/FixedBinAxis.cpp
rename to Core/Binning/FixedBinAxis.cpp
diff --git a/Core/Bins/FixedBinAxis.h b/Core/Binning/FixedBinAxis.h
similarity index 100%
rename from Core/Bins/FixedBinAxis.h
rename to Core/Binning/FixedBinAxis.h
diff --git a/Core/Bins/IAxis.h b/Core/Binning/IAxis.h
similarity index 100%
rename from Core/Bins/IAxis.h
rename to Core/Binning/IAxis.h
diff --git a/Core/Bins/VariableBinAxis.cpp b/Core/Binning/VariableBinAxis.cpp
similarity index 100%
rename from Core/Bins/VariableBinAxis.cpp
rename to Core/Binning/VariableBinAxis.cpp
diff --git a/Core/Bins/VariableBinAxis.h b/Core/Binning/VariableBinAxis.h
similarity index 100%
rename from Core/Bins/VariableBinAxis.h
rename to Core/Binning/VariableBinAxis.h
diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index a9e3e32242ed7bf64d5467aacd431ad21d5c338a..38388a3780a18e82e5f90892862ec8f8914b2859 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -11,28 +11,28 @@ endif()
 # --- source and include files ---------
 set(include_dirs
     ${BUILD_INC_DIR}
-    ${CMAKE_CURRENT_SOURCE_DIR}/Aggregates
+    ${CMAKE_CURRENT_SOURCE_DIR}/Aggregate
     ${CMAKE_CURRENT_SOURCE_DIR}/Basics
-    ${CMAKE_CURRENT_SOURCE_DIR}/Bins
+    ${CMAKE_CURRENT_SOURCE_DIR}/Binning
     ${CMAKE_CURRENT_SOURCE_DIR}/Export
     ${CMAKE_CURRENT_SOURCE_DIR}/FormFactor
     ${CMAKE_CURRENT_SOURCE_DIR}/InputOutput
     ${CMAKE_CURRENT_SOURCE_DIR}/Instrument
-    ${CMAKE_CURRENT_SOURCE_DIR}/HardParticles
+    ${CMAKE_CURRENT_SOURCE_DIR}/HardParticle
     ${CMAKE_CURRENT_SOURCE_DIR}/Lattice
     ${CMAKE_CURRENT_SOURCE_DIR}/Material
     ${CMAKE_CURRENT_SOURCE_DIR}/Mask
     ${CMAKE_CURRENT_SOURCE_DIR}/Multilayer
     ${CMAKE_CURRENT_SOURCE_DIR}/Parametrization
-    ${CMAKE_CURRENT_SOURCE_DIR}/Particles
+    ${CMAKE_CURRENT_SOURCE_DIR}/Particle
     ${CMAKE_CURRENT_SOURCE_DIR}/Rotation
     ${CMAKE_CURRENT_SOURCE_DIR}/Sample
     ${CMAKE_CURRENT_SOURCE_DIR}/Simulation
-    ${CMAKE_CURRENT_SOURCE_DIR}/SoftParticles
+    ${CMAKE_CURRENT_SOURCE_DIR}/SoftParticle
     ${CMAKE_CURRENT_SOURCE_DIR}/StandardSamples
     ${CMAKE_CURRENT_SOURCE_DIR}/TestMachinery
     ${CMAKE_CURRENT_SOURCE_DIR}/Tools
-    ${CMAKE_CURRENT_SOURCE_DIR}/Vectors
+    ${CMAKE_CURRENT_SOURCE_DIR}/Vector
     )
 
 include_directories(${include_dirs})
diff --git a/Core/HardParticles/FormFactorAnisoPyramid.cpp b/Core/HardParticle/FormFactorAnisoPyramid.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorAnisoPyramid.cpp
rename to Core/HardParticle/FormFactorAnisoPyramid.cpp
diff --git a/Core/HardParticles/FormFactorAnisoPyramid.h b/Core/HardParticle/FormFactorAnisoPyramid.h
similarity index 100%
rename from Core/HardParticles/FormFactorAnisoPyramid.h
rename to Core/HardParticle/FormFactorAnisoPyramid.h
diff --git a/Core/HardParticles/FormFactorBox.cpp b/Core/HardParticle/FormFactorBox.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorBox.cpp
rename to Core/HardParticle/FormFactorBox.cpp
diff --git a/Core/HardParticles/FormFactorBox.h b/Core/HardParticle/FormFactorBox.h
similarity index 100%
rename from Core/HardParticles/FormFactorBox.h
rename to Core/HardParticle/FormFactorBox.h
diff --git a/Core/HardParticles/FormFactorCone.cpp b/Core/HardParticle/FormFactorCone.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorCone.cpp
rename to Core/HardParticle/FormFactorCone.cpp
diff --git a/Core/HardParticles/FormFactorCone.h b/Core/HardParticle/FormFactorCone.h
similarity index 100%
rename from Core/HardParticles/FormFactorCone.h
rename to Core/HardParticle/FormFactorCone.h
diff --git a/Core/HardParticles/FormFactorCone6.cpp b/Core/HardParticle/FormFactorCone6.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorCone6.cpp
rename to Core/HardParticle/FormFactorCone6.cpp
diff --git a/Core/HardParticles/FormFactorCone6.h b/Core/HardParticle/FormFactorCone6.h
similarity index 100%
rename from Core/HardParticles/FormFactorCone6.h
rename to Core/HardParticle/FormFactorCone6.h
diff --git a/Core/HardParticles/FormFactorCuboctahedron.cpp b/Core/HardParticle/FormFactorCuboctahedron.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorCuboctahedron.cpp
rename to Core/HardParticle/FormFactorCuboctahedron.cpp
diff --git a/Core/HardParticles/FormFactorCuboctahedron.h b/Core/HardParticle/FormFactorCuboctahedron.h
similarity index 100%
rename from Core/HardParticles/FormFactorCuboctahedron.h
rename to Core/HardParticle/FormFactorCuboctahedron.h
diff --git a/Core/HardParticles/FormFactorCylinder.cpp b/Core/HardParticle/FormFactorCylinder.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorCylinder.cpp
rename to Core/HardParticle/FormFactorCylinder.cpp
diff --git a/Core/HardParticles/FormFactorCylinder.h b/Core/HardParticle/FormFactorCylinder.h
similarity index 100%
rename from Core/HardParticles/FormFactorCylinder.h
rename to Core/HardParticle/FormFactorCylinder.h
diff --git a/Core/HardParticles/FormFactorDodecahedron.cpp b/Core/HardParticle/FormFactorDodecahedron.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorDodecahedron.cpp
rename to Core/HardParticle/FormFactorDodecahedron.cpp
diff --git a/Core/HardParticles/FormFactorDodecahedron.h b/Core/HardParticle/FormFactorDodecahedron.h
similarity index 100%
rename from Core/HardParticles/FormFactorDodecahedron.h
rename to Core/HardParticle/FormFactorDodecahedron.h
diff --git a/Core/HardParticles/FormFactorEllipsoidalCylinder.cpp b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorEllipsoidalCylinder.cpp
rename to Core/HardParticle/FormFactorEllipsoidalCylinder.cpp
diff --git a/Core/HardParticles/FormFactorEllipsoidalCylinder.h b/Core/HardParticle/FormFactorEllipsoidalCylinder.h
similarity index 100%
rename from Core/HardParticles/FormFactorEllipsoidalCylinder.h
rename to Core/HardParticle/FormFactorEllipsoidalCylinder.h
diff --git a/Core/HardParticles/FormFactorFullSphere.cpp b/Core/HardParticle/FormFactorFullSphere.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorFullSphere.cpp
rename to Core/HardParticle/FormFactorFullSphere.cpp
diff --git a/Core/HardParticles/FormFactorFullSphere.h b/Core/HardParticle/FormFactorFullSphere.h
similarity index 100%
rename from Core/HardParticles/FormFactorFullSphere.h
rename to Core/HardParticle/FormFactorFullSphere.h
diff --git a/Core/HardParticles/FormFactorFullSpheroid.cpp b/Core/HardParticle/FormFactorFullSpheroid.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorFullSpheroid.cpp
rename to Core/HardParticle/FormFactorFullSpheroid.cpp
diff --git a/Core/HardParticles/FormFactorFullSpheroid.h b/Core/HardParticle/FormFactorFullSpheroid.h
similarity index 100%
rename from Core/HardParticles/FormFactorFullSpheroid.h
rename to Core/HardParticle/FormFactorFullSpheroid.h
diff --git a/Core/HardParticles/FormFactorHemiEllipsoid.cpp b/Core/HardParticle/FormFactorHemiEllipsoid.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorHemiEllipsoid.cpp
rename to Core/HardParticle/FormFactorHemiEllipsoid.cpp
diff --git a/Core/HardParticles/FormFactorHemiEllipsoid.h b/Core/HardParticle/FormFactorHemiEllipsoid.h
similarity index 100%
rename from Core/HardParticles/FormFactorHemiEllipsoid.h
rename to Core/HardParticle/FormFactorHemiEllipsoid.h
diff --git a/Core/HardParticles/FormFactorIcosahedron.cpp b/Core/HardParticle/FormFactorIcosahedron.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorIcosahedron.cpp
rename to Core/HardParticle/FormFactorIcosahedron.cpp
diff --git a/Core/HardParticles/FormFactorIcosahedron.h b/Core/HardParticle/FormFactorIcosahedron.h
similarity index 100%
rename from Core/HardParticles/FormFactorIcosahedron.h
rename to Core/HardParticle/FormFactorIcosahedron.h
diff --git a/Core/HardParticles/FormFactorLongBoxGauss.cpp b/Core/HardParticle/FormFactorLongBoxGauss.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorLongBoxGauss.cpp
rename to Core/HardParticle/FormFactorLongBoxGauss.cpp
diff --git a/Core/HardParticles/FormFactorLongBoxGauss.h b/Core/HardParticle/FormFactorLongBoxGauss.h
similarity index 100%
rename from Core/HardParticles/FormFactorLongBoxGauss.h
rename to Core/HardParticle/FormFactorLongBoxGauss.h
diff --git a/Core/HardParticles/FormFactorLongBoxLorentz.cpp b/Core/HardParticle/FormFactorLongBoxLorentz.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorLongBoxLorentz.cpp
rename to Core/HardParticle/FormFactorLongBoxLorentz.cpp
diff --git a/Core/HardParticles/FormFactorLongBoxLorentz.h b/Core/HardParticle/FormFactorLongBoxLorentz.h
similarity index 100%
rename from Core/HardParticles/FormFactorLongBoxLorentz.h
rename to Core/HardParticle/FormFactorLongBoxLorentz.h
diff --git a/Core/HardParticles/FormFactorLongRipple1Gauss.cpp b/Core/HardParticle/FormFactorLongRipple1Gauss.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple1Gauss.cpp
rename to Core/HardParticle/FormFactorLongRipple1Gauss.cpp
diff --git a/Core/HardParticles/FormFactorLongRipple1Gauss.h b/Core/HardParticle/FormFactorLongRipple1Gauss.h
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple1Gauss.h
rename to Core/HardParticle/FormFactorLongRipple1Gauss.h
diff --git a/Core/HardParticles/FormFactorLongRipple1Lorentz.cpp b/Core/HardParticle/FormFactorLongRipple1Lorentz.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple1Lorentz.cpp
rename to Core/HardParticle/FormFactorLongRipple1Lorentz.cpp
diff --git a/Core/HardParticles/FormFactorLongRipple1Lorentz.h b/Core/HardParticle/FormFactorLongRipple1Lorentz.h
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple1Lorentz.h
rename to Core/HardParticle/FormFactorLongRipple1Lorentz.h
diff --git a/Core/HardParticles/FormFactorLongRipple2Gauss.cpp b/Core/HardParticle/FormFactorLongRipple2Gauss.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple2Gauss.cpp
rename to Core/HardParticle/FormFactorLongRipple2Gauss.cpp
diff --git a/Core/HardParticles/FormFactorLongRipple2Gauss.h b/Core/HardParticle/FormFactorLongRipple2Gauss.h
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple2Gauss.h
rename to Core/HardParticle/FormFactorLongRipple2Gauss.h
diff --git a/Core/HardParticles/FormFactorLongRipple2Lorentz.cpp b/Core/HardParticle/FormFactorLongRipple2Lorentz.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple2Lorentz.cpp
rename to Core/HardParticle/FormFactorLongRipple2Lorentz.cpp
diff --git a/Core/HardParticles/FormFactorLongRipple2Lorentz.h b/Core/HardParticle/FormFactorLongRipple2Lorentz.h
similarity index 100%
rename from Core/HardParticles/FormFactorLongRipple2Lorentz.h
rename to Core/HardParticle/FormFactorLongRipple2Lorentz.h
diff --git a/Core/HardParticles/FormFactorPolyhedron.cpp b/Core/HardParticle/FormFactorPolyhedron.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorPolyhedron.cpp
rename to Core/HardParticle/FormFactorPolyhedron.cpp
diff --git a/Core/HardParticles/FormFactorPolyhedron.h b/Core/HardParticle/FormFactorPolyhedron.h
similarity index 100%
rename from Core/HardParticles/FormFactorPolyhedron.h
rename to Core/HardParticle/FormFactorPolyhedron.h
diff --git a/Core/HardParticles/FormFactorPrism3.cpp b/Core/HardParticle/FormFactorPrism3.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorPrism3.cpp
rename to Core/HardParticle/FormFactorPrism3.cpp
diff --git a/Core/HardParticles/FormFactorPrism3.h b/Core/HardParticle/FormFactorPrism3.h
similarity index 100%
rename from Core/HardParticles/FormFactorPrism3.h
rename to Core/HardParticle/FormFactorPrism3.h
diff --git a/Core/HardParticles/FormFactorPrism6.cpp b/Core/HardParticle/FormFactorPrism6.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorPrism6.cpp
rename to Core/HardParticle/FormFactorPrism6.cpp
diff --git a/Core/HardParticles/FormFactorPrism6.h b/Core/HardParticle/FormFactorPrism6.h
similarity index 100%
rename from Core/HardParticles/FormFactorPrism6.h
rename to Core/HardParticle/FormFactorPrism6.h
diff --git a/Core/HardParticles/FormFactorPyramid.cpp b/Core/HardParticle/FormFactorPyramid.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorPyramid.cpp
rename to Core/HardParticle/FormFactorPyramid.cpp
diff --git a/Core/HardParticles/FormFactorPyramid.h b/Core/HardParticle/FormFactorPyramid.h
similarity index 100%
rename from Core/HardParticles/FormFactorPyramid.h
rename to Core/HardParticle/FormFactorPyramid.h
diff --git a/Core/HardParticles/FormFactorRipple1.cpp b/Core/HardParticle/FormFactorRipple1.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorRipple1.cpp
rename to Core/HardParticle/FormFactorRipple1.cpp
diff --git a/Core/HardParticles/FormFactorRipple1.h b/Core/HardParticle/FormFactorRipple1.h
similarity index 100%
rename from Core/HardParticles/FormFactorRipple1.h
rename to Core/HardParticle/FormFactorRipple1.h
diff --git a/Core/HardParticles/FormFactorRipple2.cpp b/Core/HardParticle/FormFactorRipple2.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorRipple2.cpp
rename to Core/HardParticle/FormFactorRipple2.cpp
diff --git a/Core/HardParticles/FormFactorRipple2.h b/Core/HardParticle/FormFactorRipple2.h
similarity index 100%
rename from Core/HardParticles/FormFactorRipple2.h
rename to Core/HardParticle/FormFactorRipple2.h
diff --git a/Core/HardParticles/FormFactorTetrahedron.cpp b/Core/HardParticle/FormFactorTetrahedron.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorTetrahedron.cpp
rename to Core/HardParticle/FormFactorTetrahedron.cpp
diff --git a/Core/HardParticles/FormFactorTetrahedron.h b/Core/HardParticle/FormFactorTetrahedron.h
similarity index 100%
rename from Core/HardParticles/FormFactorTetrahedron.h
rename to Core/HardParticle/FormFactorTetrahedron.h
diff --git a/Core/HardParticles/FormFactorTriangle.cpp b/Core/HardParticle/FormFactorTriangle.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorTriangle.cpp
rename to Core/HardParticle/FormFactorTriangle.cpp
diff --git a/Core/HardParticles/FormFactorTriangle.h b/Core/HardParticle/FormFactorTriangle.h
similarity index 100%
rename from Core/HardParticles/FormFactorTriangle.h
rename to Core/HardParticle/FormFactorTriangle.h
diff --git a/Core/HardParticles/FormFactorTrivial.cpp b/Core/HardParticle/FormFactorTrivial.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorTrivial.cpp
rename to Core/HardParticle/FormFactorTrivial.cpp
diff --git a/Core/HardParticles/FormFactorTrivial.h b/Core/HardParticle/FormFactorTrivial.h
similarity index 100%
rename from Core/HardParticles/FormFactorTrivial.h
rename to Core/HardParticle/FormFactorTrivial.h
diff --git a/Core/HardParticles/FormFactorTruncatedCube.cpp b/Core/HardParticle/FormFactorTruncatedCube.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorTruncatedCube.cpp
rename to Core/HardParticle/FormFactorTruncatedCube.cpp
diff --git a/Core/HardParticles/FormFactorTruncatedCube.h b/Core/HardParticle/FormFactorTruncatedCube.h
similarity index 100%
rename from Core/HardParticles/FormFactorTruncatedCube.h
rename to Core/HardParticle/FormFactorTruncatedCube.h
diff --git a/Core/HardParticles/FormFactorTruncatedSphere.cpp b/Core/HardParticle/FormFactorTruncatedSphere.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorTruncatedSphere.cpp
rename to Core/HardParticle/FormFactorTruncatedSphere.cpp
diff --git a/Core/HardParticles/FormFactorTruncatedSphere.h b/Core/HardParticle/FormFactorTruncatedSphere.h
similarity index 100%
rename from Core/HardParticles/FormFactorTruncatedSphere.h
rename to Core/HardParticle/FormFactorTruncatedSphere.h
diff --git a/Core/HardParticles/FormFactorTruncatedSpheroid.cpp b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp
similarity index 100%
rename from Core/HardParticles/FormFactorTruncatedSpheroid.cpp
rename to Core/HardParticle/FormFactorTruncatedSpheroid.cpp
diff --git a/Core/HardParticles/FormFactorTruncatedSpheroid.h b/Core/HardParticle/FormFactorTruncatedSpheroid.h
similarity index 100%
rename from Core/HardParticles/FormFactorTruncatedSpheroid.h
rename to Core/HardParticle/FormFactorTruncatedSpheroid.h
diff --git a/Core/HardParticles/HardParticles.h b/Core/HardParticle/HardParticles.h
similarity index 100%
rename from Core/HardParticles/HardParticles.h
rename to Core/HardParticle/HardParticles.h
diff --git a/Core/Particles/Crystal.cpp b/Core/Particle/Crystal.cpp
similarity index 100%
rename from Core/Particles/Crystal.cpp
rename to Core/Particle/Crystal.cpp
diff --git a/Core/Particles/Crystal.h b/Core/Particle/Crystal.h
similarity index 100%
rename from Core/Particles/Crystal.h
rename to Core/Particle/Crystal.h
diff --git a/Core/Particles/FormFactorCrystal.cpp b/Core/Particle/FormFactorCrystal.cpp
similarity index 100%
rename from Core/Particles/FormFactorCrystal.cpp
rename to Core/Particle/FormFactorCrystal.cpp
diff --git a/Core/Particles/FormFactorCrystal.h b/Core/Particle/FormFactorCrystal.h
similarity index 100%
rename from Core/Particles/FormFactorCrystal.h
rename to Core/Particle/FormFactorCrystal.h
diff --git a/Core/Particles/FormFactorWeighted.cpp b/Core/Particle/FormFactorWeighted.cpp
similarity index 100%
rename from Core/Particles/FormFactorWeighted.cpp
rename to Core/Particle/FormFactorWeighted.cpp
diff --git a/Core/Particles/FormFactorWeighted.h b/Core/Particle/FormFactorWeighted.h
similarity index 100%
rename from Core/Particles/FormFactorWeighted.h
rename to Core/Particle/FormFactorWeighted.h
diff --git a/Core/Particles/FormFactors.h b/Core/Particle/FormFactors.h
similarity index 100%
rename from Core/Particles/FormFactors.h
rename to Core/Particle/FormFactors.h
diff --git a/Core/Particles/IClusteredParticles.h b/Core/Particle/IClusteredParticles.h
similarity index 100%
rename from Core/Particles/IClusteredParticles.h
rename to Core/Particle/IClusteredParticles.h
diff --git a/Core/Particles/IFormFactorBorn.cpp b/Core/Particle/IFormFactorBorn.cpp
similarity index 100%
rename from Core/Particles/IFormFactorBorn.cpp
rename to Core/Particle/IFormFactorBorn.cpp
diff --git a/Core/Particles/IFormFactorBorn.h b/Core/Particle/IFormFactorBorn.h
similarity index 100%
rename from Core/Particles/IFormFactorBorn.h
rename to Core/Particle/IFormFactorBorn.h
diff --git a/Core/Particles/IParticle.cpp b/Core/Particle/IParticle.cpp
similarity index 100%
rename from Core/Particles/IParticle.cpp
rename to Core/Particle/IParticle.cpp
diff --git a/Core/Particles/IParticle.h b/Core/Particle/IParticle.h
similarity index 100%
rename from Core/Particles/IParticle.h
rename to Core/Particle/IParticle.h
diff --git a/Core/Particles/MesoCrystal.cpp b/Core/Particle/MesoCrystal.cpp
similarity index 100%
rename from Core/Particles/MesoCrystal.cpp
rename to Core/Particle/MesoCrystal.cpp
diff --git a/Core/Particles/MesoCrystal.h b/Core/Particle/MesoCrystal.h
similarity index 100%
rename from Core/Particles/MesoCrystal.h
rename to Core/Particle/MesoCrystal.h
diff --git a/Core/Particles/Particle.cpp b/Core/Particle/Particle.cpp
similarity index 100%
rename from Core/Particles/Particle.cpp
rename to Core/Particle/Particle.cpp
diff --git a/Core/Particles/Particle.h b/Core/Particle/Particle.h
similarity index 100%
rename from Core/Particles/Particle.h
rename to Core/Particle/Particle.h
diff --git a/Core/Particles/ParticleComposition.cpp b/Core/Particle/ParticleComposition.cpp
similarity index 100%
rename from Core/Particles/ParticleComposition.cpp
rename to Core/Particle/ParticleComposition.cpp
diff --git a/Core/Particles/ParticleComposition.h b/Core/Particle/ParticleComposition.h
similarity index 100%
rename from Core/Particles/ParticleComposition.h
rename to Core/Particle/ParticleComposition.h
diff --git a/Core/Particles/ParticleCoreShell.cpp b/Core/Particle/ParticleCoreShell.cpp
similarity index 100%
rename from Core/Particles/ParticleCoreShell.cpp
rename to Core/Particle/ParticleCoreShell.cpp
diff --git a/Core/Particles/ParticleCoreShell.h b/Core/Particle/ParticleCoreShell.h
similarity index 100%
rename from Core/Particles/ParticleCoreShell.h
rename to Core/Particle/ParticleCoreShell.h
diff --git a/Core/Particles/ParticleDistribution.cpp b/Core/Particle/ParticleDistribution.cpp
similarity index 100%
rename from Core/Particles/ParticleDistribution.cpp
rename to Core/Particle/ParticleDistribution.cpp
diff --git a/Core/Particles/ParticleDistribution.h b/Core/Particle/ParticleDistribution.h
similarity index 100%
rename from Core/Particles/ParticleDistribution.h
rename to Core/Particle/ParticleDistribution.h
diff --git a/Core/Particles/TRange.h b/Core/Particle/TRange.h
similarity index 100%
rename from Core/Particles/TRange.h
rename to Core/Particle/TRange.h
diff --git a/Core/SoftParticles/FormFactorGauss.cpp b/Core/SoftParticle/FormFactorGauss.cpp
similarity index 100%
rename from Core/SoftParticles/FormFactorGauss.cpp
rename to Core/SoftParticle/FormFactorGauss.cpp
diff --git a/Core/SoftParticles/FormFactorGauss.h b/Core/SoftParticle/FormFactorGauss.h
similarity index 100%
rename from Core/SoftParticles/FormFactorGauss.h
rename to Core/SoftParticle/FormFactorGauss.h
diff --git a/Core/SoftParticles/FormFactorLorentz.cpp b/Core/SoftParticle/FormFactorLorentz.cpp
similarity index 100%
rename from Core/SoftParticles/FormFactorLorentz.cpp
rename to Core/SoftParticle/FormFactorLorentz.cpp
diff --git a/Core/SoftParticles/FormFactorLorentz.h b/Core/SoftParticle/FormFactorLorentz.h
similarity index 100%
rename from Core/SoftParticles/FormFactorLorentz.h
rename to Core/SoftParticle/FormFactorLorentz.h
diff --git a/Core/SoftParticles/FormFactorSphereGaussianRadius.cpp b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
similarity index 100%
rename from Core/SoftParticles/FormFactorSphereGaussianRadius.cpp
rename to Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
diff --git a/Core/SoftParticles/FormFactorSphereGaussianRadius.h b/Core/SoftParticle/FormFactorSphereGaussianRadius.h
similarity index 100%
rename from Core/SoftParticles/FormFactorSphereGaussianRadius.h
rename to Core/SoftParticle/FormFactorSphereGaussianRadius.h
diff --git a/Core/SoftParticles/FormFactorSphereLogNormalRadius.cpp b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
similarity index 100%
rename from Core/SoftParticles/FormFactorSphereLogNormalRadius.cpp
rename to Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp
diff --git a/Core/SoftParticles/FormFactorSphereLogNormalRadius.h b/Core/SoftParticle/FormFactorSphereLogNormalRadius.h
similarity index 100%
rename from Core/SoftParticles/FormFactorSphereLogNormalRadius.h
rename to Core/SoftParticle/FormFactorSphereLogNormalRadius.h
diff --git a/Core/SoftParticles/FormFactorSphereUniformRadius.cpp b/Core/SoftParticle/FormFactorSphereUniformRadius.cpp
similarity index 100%
rename from Core/SoftParticles/FormFactorSphereUniformRadius.cpp
rename to Core/SoftParticle/FormFactorSphereUniformRadius.cpp
diff --git a/Core/SoftParticles/FormFactorSphereUniformRadius.h b/Core/SoftParticle/FormFactorSphereUniformRadius.h
similarity index 100%
rename from Core/SoftParticles/FormFactorSphereUniformRadius.h
rename to Core/SoftParticle/FormFactorSphereUniformRadius.h
diff --git a/Core/SoftParticles/SoftParticles.h b/Core/SoftParticle/SoftParticles.h
similarity index 100%
rename from Core/SoftParticles/SoftParticles.h
rename to Core/SoftParticle/SoftParticles.h
diff --git a/Core/Vectors/BasicVector3D.cpp b/Core/Vector/BasicVector3D.cpp
similarity index 100%
rename from Core/Vectors/BasicVector3D.cpp
rename to Core/Vector/BasicVector3D.cpp
diff --git a/Core/Vectors/BasicVector3D.h b/Core/Vector/BasicVector3D.h
similarity index 100%
rename from Core/Vectors/BasicVector3D.h
rename to Core/Vector/BasicVector3D.h
diff --git a/Core/Vectors/EigenCore.h b/Core/Vector/EigenCore.h
similarity index 100%
rename from Core/Vectors/EigenCore.h
rename to Core/Vector/EigenCore.h
diff --git a/Core/Vectors/FastVector.h b/Core/Vector/FastVector.h
similarity index 100%
rename from Core/Vectors/FastVector.h
rename to Core/Vector/FastVector.h
diff --git a/Core/Vectors/Transform3D.cpp b/Core/Vector/Transform3D.cpp
similarity index 100%
rename from Core/Vectors/Transform3D.cpp
rename to Core/Vector/Transform3D.cpp
diff --git a/Core/Vectors/Transform3D.h b/Core/Vector/Transform3D.h
similarity index 100%
rename from Core/Vectors/Transform3D.h
rename to Core/Vector/Transform3D.h
diff --git a/Core/Vectors/Vectors3D.h b/Core/Vector/Vectors3D.h
similarity index 100%
rename from Core/Vectors/Vectors3D.h
rename to Core/Vector/Vectors3D.h
diff --git a/Core/Vectors/WavevectorInfo.h b/Core/Vector/WavevectorInfo.h
similarity index 100%
rename from Core/Vectors/WavevectorInfo.h
rename to Core/Vector/WavevectorInfo.h
diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i
index 24c55b4765a9e5558473d71b3eb59f200c3fc583..9c7dda778007969669eae2b831e690ad2f58696f 100644
--- a/auto/Wrap/doxygen_core.i
+++ b/auto/Wrap/doxygen_core.i
@@ -13135,13 +13135,13 @@ C++ includes: WavevectorInfo.h
 // File: namespace_0D281.xml
 
 
-// File: namespace_0D342.xml
+// File: namespace_0D348.xml
 
 
-// File: namespace_0D407.xml
+// File: namespace_0D413.xml
 
 
-// File: namespace_0D421.xml
+// File: namespace_0D427.xml
 
 
 // File: namespaceboost_1_1geometry.xml
@@ -14633,6 +14633,34 @@ Returns concatenated rotation (first right, then left).
 // File: ISampleIteratorStrategy_8h.xml
 
 
+// File: ISampleVisitor_8cpp.xml
+%feature("docstring")  VisitSampleTreePreorder "void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)
+";
+
+%feature("docstring")  VisitSampleTreePostorder "void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)
+";
+
+
+// File: ISampleVisitor_8h.xml
+%feature("docstring")  VisitSampleTreePreorder "BA_CORE_API_ void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)
+";
+
+%feature("docstring")  VisitSampleTreePostorder "BA_CORE_API_ void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)
+";
+
+
+// File: SampleMaterialVisitor_8cpp.xml
+
+
+// File: SampleMaterialVisitor_8h.xml
+
+
+// File: SamplePrintVisitor_8cpp.xml
+
+
+// File: SamplePrintVisitor_8h.xml
+
+
 // File: SampleTreeIterator_8cpp.xml
 
 
@@ -15024,44 +15052,13 @@ David N. Williams
 // File: WavevectorInfo_8h.xml
 
 
-// File: ISampleVisitor_8cpp.xml
-%feature("docstring")  VisitSampleTreePreorder "void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)
-";
-
-%feature("docstring")  VisitSampleTreePostorder "void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)
-";
-
-
-// File: ISampleVisitor_8h.xml
-%feature("docstring")  VisitSampleTreePreorder "BA_CORE_API_ void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)
-";
-
-%feature("docstring")  VisitSampleTreePostorder "BA_CORE_API_ void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)
-";
-
-
-// File: SampleMaterialVisitor_8cpp.xml
-
-
-// File: SampleMaterialVisitor_8h.xml
-
-
-// File: SamplePrintVisitor_8cpp.xml
-
-
-// File: SamplePrintVisitor_8h.xml
-
-
-// File: todo.xml
-
-
-// File: dir_7316e3e29a8ac59fa6bdde8ded230f2d.xml
+// File: dir_5f1a4a05eca575eab319839347bb4113.xml
 
 
 // File: dir_f2db70b1039b2dc98a7a13a1758f382f.xml
 
 
-// File: dir_0a45a9065b879ef3f106cc24d330f492.xml
+// File: dir_629bf8536959f2975d8caec326cd60c0.xml
 
 
 // File: dir_c6310732a22f63c0c2fc5595561e68f1.xml
@@ -15073,7 +15070,7 @@ David N. Williams
 // File: dir_c8e420540f3cc673520907fed872650b.xml
 
 
-// File: dir_43bf4f843b6e885b1bee2bc28b8e4b1a.xml
+// File: dir_05b265732c0b4c8e8dad02f2f774744b.xml
 
 
 // File: dir_d7044b5fc4daccc5700de9f07da81a11.xml
@@ -15097,7 +15094,7 @@ David N. Williams
 // File: dir_d4e34ce36424db6c5895519defe19e58.xml
 
 
-// File: dir_56f35af5cdc8591a6ab0d4cb14eefef0.xml
+// File: dir_3a34810b9fbc1682c26e767b1a1a5860.xml
 
 
 // File: dir_b68f57b1e17bed671dde6594d8b31be9.xml
@@ -15109,7 +15106,7 @@ David N. Williams
 // File: dir_d7a24665a95cfc15308ebd7b07b5ebd6.xml
 
 
-// File: dir_557b80dddb24360a999b57d02a642987.xml
+// File: dir_bf872a709c84554e66a8525bb546523f.xml
 
 
 // File: dir_5d2259b43612a5a0ff7512df653d7370.xml
@@ -15121,8 +15118,5 @@ David N. Williams
 // File: dir_e120110860f9b345e7b3217e8b15cbb8.xml
 
 
-// File: dir_eab7faf105a6971a8b09ddb5c60d62eb.xml
-
-
-// File: dir_06acaf35e2549d988a99ee5aacf848c8.xml
+// File: dir_19cd2158bba3b9a051f8f27403820580.xml