diff --git a/Src/Chebyshev/FAbstractChebKernel.hpp b/Src/Kernels/Chebyshev/FAbstractChebKernel.hpp
similarity index 97%
rename from Src/Chebyshev/FAbstractChebKernel.hpp
rename to Src/Kernels/Chebyshev/FAbstractChebKernel.hpp
index f5948eb80f86f03a3202ef79844efbfd4a2c97c5..d04c892bf54b6ee1f5aebb38bf64f6a340cd03bd 100644
--- a/Src/Chebyshev/FAbstractChebKernel.hpp
+++ b/Src/Kernels/Chebyshev/FAbstractChebKernel.hpp
@@ -2,11 +2,11 @@
 #define FABSTRACTCHEBKERNEL_HPP
 // [--License--]
 
-#include "../Utils/FGlobal.hpp"
-#include "../Utils/FTrace.hpp"
-#include "../Utils/FSmartPointer.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Utils/FTrace.hpp"
+#include "../../Utils/FSmartPointer.hpp"
 
-#include "../Components/FAbstractKernels.hpp"
+#include "../../Components/FAbstractKernels.hpp"
 
 #include "./FChebInterpolator.hpp"
 
diff --git a/Src/Chebyshev/FChebCell.hpp b/Src/Kernels/Chebyshev/FChebCell.hpp
similarity index 89%
rename from Src/Chebyshev/FChebCell.hpp
rename to Src/Kernels/Chebyshev/FChebCell.hpp
index 2fc09de3fe89d92258cd570798af92c0023986c8..dc555dc3f2901f6aed6d8f5c6f01b8f7cc413035 100644
--- a/Src/Chebyshev/FChebCell.hpp
+++ b/Src/Kernels/Chebyshev/FChebCell.hpp
@@ -2,8 +2,8 @@
 #define FCHEBCELL_HPP
 
 
-#include "../Extensions/FExtendMortonIndex.hpp"
-#include "../Extensions/FExtendCoordinate.hpp"
+#include "../../Extensions/FExtendMortonIndex.hpp"
+#include "../../Extensions/FExtendCoordinate.hpp"
 
 #include "./FChebTensor.hpp"
 
diff --git a/Src/Chebyshev/FChebInterpolator.hpp b/Src/Kernels/Chebyshev/FChebInterpolator.hpp
similarity index 99%
rename from Src/Chebyshev/FChebInterpolator.hpp
rename to Src/Kernels/Chebyshev/FChebInterpolator.hpp
index 84a04e2453c4778029571a716f964f47ce6df448..9c2c7eb28259bbeba543fae94fa12b310d76e0ab 100644
--- a/Src/Chebyshev/FChebInterpolator.hpp
+++ b/Src/Kernels/Chebyshev/FChebInterpolator.hpp
@@ -6,7 +6,7 @@
 #include "./FChebTensor.hpp"
 #include "./FChebRoots.hpp"
 
-#include "../Utils/FBlas.hpp"
+#include "../../Utils/FBlas.hpp"
 
 
 
diff --git a/Src/Chebyshev/FChebKernel.hpp b/Src/Kernels/Chebyshev/FChebKernel.hpp
similarity index 97%
rename from Src/Chebyshev/FChebKernel.hpp
rename to Src/Kernels/Chebyshev/FChebKernel.hpp
index 41f53d4a088361dd6cd9405fe1c8e3eb92eeb46f..40a9a656a591f7d77e016d4166e2a1b45ceedd7d 100644
--- a/Src/Chebyshev/FChebKernel.hpp
+++ b/Src/Kernels/Chebyshev/FChebKernel.hpp
@@ -2,13 +2,11 @@
 #define FCHEBKERNEL_HPP
 // [--License--]
 
-#include "../Utils/FGlobal.hpp"
-#include "../Utils/FTrace.hpp"
-#include "../Utils/FSmartPointer.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Utils/FTrace.hpp"
+#include "../../Utils/FSmartPointer.hpp"
 
 #include "./FAbstractChebKernel.hpp"
-
-//#include "./FChebInterpolator.hpp"
 #include "./FChebM2LHandler.hpp"
 
 class FTreeCoordinate;
diff --git a/Src/Chebyshev/FChebLeaf.hpp b/Src/Kernels/Chebyshev/FChebLeaf.hpp
similarity index 91%
rename from Src/Chebyshev/FChebLeaf.hpp
rename to Src/Kernels/Chebyshev/FChebLeaf.hpp
index e7fbd3fd235932c3d832934782111c15383394ed..91fcb90b71a07fe05409d2535ef0ac4b58678c0e 100644
--- a/Src/Chebyshev/FChebLeaf.hpp
+++ b/Src/Kernels/Chebyshev/FChebLeaf.hpp
@@ -2,8 +2,8 @@
 #define FCHEBLEAF_HPP
 
 
-#include "../Utils/FNoCopyable.hpp"
-#include "../Containers/FVector.hpp"
+#include "../../Utils/FNoCopyable.hpp"
+#include "../../Containers/FVector.hpp"
 
 class FChebParticle;
 
diff --git a/Src/Chebyshev/FChebM2LHandler.hpp b/Src/Kernels/Chebyshev/FChebM2LHandler.hpp
similarity index 99%
rename from Src/Chebyshev/FChebM2LHandler.hpp
rename to Src/Kernels/Chebyshev/FChebM2LHandler.hpp
index 870cb9bf8c86828be0e0b4aa30f8e54cbca8ff6d..9542d73821a116cde7dad7d6fa15b52709f192ab 100644
--- a/Src/Chebyshev/FChebM2LHandler.hpp
+++ b/Src/Kernels/Chebyshev/FChebM2LHandler.hpp
@@ -9,8 +9,8 @@
 #include <fstream>
 #include <typeinfo>
 
-#include "../Utils/FBlas.hpp"
-#include "../Utils/FTic.hpp"
+#include "../../Utils/FBlas.hpp"
+#include "../../Utils/FTic.hpp"
 
 #include "./FChebTensor.hpp"
 
diff --git a/Src/Chebyshev/FChebMapping.hpp b/Src/Kernels/Chebyshev/FChebMapping.hpp
similarity index 98%
rename from Src/Chebyshev/FChebMapping.hpp
rename to Src/Kernels/Chebyshev/FChebMapping.hpp
index 4113c69e3d2cda07589072079a73a2e1414712d0..8dc719bc21dcf586a57e2762536327134c7603c6 100644
--- a/Src/Chebyshev/FChebMapping.hpp
+++ b/Src/Kernels/Chebyshev/FChebMapping.hpp
@@ -3,8 +3,8 @@
 
 #include <limits>
 
-#include "../Utils/FNoCopyable.hpp"
-#include "../Utils/F3DPosition.hpp"
+#include "../../Utils/FNoCopyable.hpp"
+#include "../../Utils/F3DPosition.hpp"
 
 /**
  * @author Matthias Messner (matthias.matthias@inria.fr)
diff --git a/Src/Chebyshev/FChebMatrixKernel.hpp b/Src/Kernels/Chebyshev/FChebMatrixKernel.hpp
similarity index 92%
rename from Src/Chebyshev/FChebMatrixKernel.hpp
rename to Src/Kernels/Chebyshev/FChebMatrixKernel.hpp
index 8a23043c3ad42a242d719c818ba65f50794d9ca7..96bfa6016c0689c4ebb9abc542caa90fb0ddd9f4 100644
--- a/Src/Chebyshev/FChebMatrixKernel.hpp
+++ b/Src/Kernels/Chebyshev/FChebMatrixKernel.hpp
@@ -2,9 +2,9 @@
 #define FCHEBMATRIXKERNEL_HPP
 // [--License--]
 
-#include "../Utils/F3DPosition.hpp"
-#include "../Utils/FNoCopyable.hpp"
-#include "../Utils/FMath.hpp"
+#include "../../Utils/F3DPosition.hpp"
+#include "../../Utils/FNoCopyable.hpp"
+#include "../../Utils/FMath.hpp"
 
 
 enum {ONE_OVER_R         = 1,
diff --git a/Src/Chebyshev/FChebParticle.hpp b/Src/Kernels/Chebyshev/FChebParticle.hpp
similarity index 71%
rename from Src/Chebyshev/FChebParticle.hpp
rename to Src/Kernels/Chebyshev/FChebParticle.hpp
index ab7e1f64837c3cd9f44dd6c5bdd77e686d3ecccb..83b8bd5ba3c7b14da307aec40d27a30362a66651 100644
--- a/Src/Chebyshev/FChebParticle.hpp
+++ b/Src/Kernels/Chebyshev/FChebParticle.hpp
@@ -4,10 +4,10 @@
 #include <stdexcept>
 #include <cassert>
 
-#include "../Extensions/FExtendPosition.hpp"
-#include "../Extensions/FExtendPhysicalValue.hpp"
-#include "../Extensions/FExtendPotential.hpp"
-#include "../Extensions/FExtendForces.hpp"
+#include "../../Extensions/FExtendPosition.hpp"
+#include "../../Extensions/FExtendPhysicalValue.hpp"
+#include "../../Extensions/FExtendPotential.hpp"
+#include "../../Extensions/FExtendForces.hpp"
 
 /**
  * @author Matthias Messner (matthias.matthias@inria.fr)
diff --git a/Src/Chebyshev/FChebRoots.hpp b/Src/Kernels/Chebyshev/FChebRoots.hpp
similarity index 99%
rename from Src/Chebyshev/FChebRoots.hpp
rename to Src/Kernels/Chebyshev/FChebRoots.hpp
index c310b9574acb480e1aa3c4fc58ef183a4f38dbe7..0101e95bbb27b1aa0f6cb1c7717391b6a5188a3b 100644
--- a/Src/Chebyshev/FChebRoots.hpp
+++ b/Src/Kernels/Chebyshev/FChebRoots.hpp
@@ -5,7 +5,7 @@
 #include <limits>
 #include <cassert>
 
-#include "../Utils/FNoCopyable.hpp"
+#include "../../Utils/FNoCopyable.hpp"
 
 
 /**
diff --git a/Src/Chebyshev/FChebSymKernel.hpp b/Src/Kernels/Chebyshev/FChebSymKernel.hpp
similarity index 99%
rename from Src/Chebyshev/FChebSymKernel.hpp
rename to Src/Kernels/Chebyshev/FChebSymKernel.hpp
index a74af75ec4ecbdcb717597c2d4558fd146c2d1db..10b2fa0930ea0deef04d9f5fddf81760d098ebde 100644
--- a/Src/Chebyshev/FChebSymKernel.hpp
+++ b/Src/Kernels/Chebyshev/FChebSymKernel.hpp
@@ -2,12 +2,11 @@
 #define FCHEBSYMKERNEL_HPP
 // [--License--]
 
-#include "../Utils/FGlobal.hpp"
-#include "../Utils/FTrace.hpp"
-#include "../Utils/FSmartPointer.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Utils/FTrace.hpp"
+#include "../../Utils/FSmartPointer.hpp"
 
 #include "./FAbstractChebKernel.hpp"
-
 #include "./FChebInterpolator.hpp"
 #include "./FChebSymmetries.hpp"
 
diff --git a/Src/Chebyshev/FChebSymmetries.hpp b/Src/Kernels/Chebyshev/FChebSymmetries.hpp
similarity index 99%
rename from Src/Chebyshev/FChebSymmetries.hpp
rename to Src/Kernels/Chebyshev/FChebSymmetries.hpp
index 3acfb985fe7882bcf2ec78a6e5464660a620b245..a1e348661ac7d721098670b252e4871a234502eb 100644
--- a/Src/Chebyshev/FChebSymmetries.hpp
+++ b/Src/Kernels/Chebyshev/FChebSymmetries.hpp
@@ -3,7 +3,7 @@
 
 #include <climits>
 
-#include "../Utils/FBlas.hpp"
+#include "../../Utils/FBlas.hpp"
 
 #include "./FChebTensor.hpp"
 
diff --git a/Src/Chebyshev/FChebTensor.hpp b/Src/Kernels/Chebyshev/FChebTensor.hpp
similarity index 99%
rename from Src/Chebyshev/FChebTensor.hpp
rename to Src/Kernels/Chebyshev/FChebTensor.hpp
index 4b5d5a20439b85ddd92688bccece11c3f42160f2..16b1143d903d7d99299873cfc0a70cac94065c1c 100644
--- a/Src/Chebyshev/FChebTensor.hpp
+++ b/Src/Kernels/Chebyshev/FChebTensor.hpp
@@ -1,7 +1,7 @@
 #ifndef FCHEBTENSOR_HPP
 #define FCHEBTENSOR_HPP
 
-#include "../Utils/FMath.hpp"
+#include "../../Utils/FMath.hpp"
 
 #include "./FChebRoots.hpp"
 #include "./FChebMapping.hpp"
diff --git a/Tests/testChebAlgorithm.cpp b/Tests/testChebAlgorithm.cpp
index e945c70dc2273732146ec7bf6ea449f4b3612f99..3c3ba36794711c8e82c13c5147baff4bb6d28b1d 100644
--- a/Tests/testChebAlgorithm.cpp
+++ b/Tests/testChebAlgorithm.cpp
@@ -23,12 +23,12 @@
 #include <cstdio>
 #include <cstdlib>
 
-#include "../Src/Chebyshev/FChebParticle.hpp"
-#include "../Src/Chebyshev/FChebLeaf.hpp"
-#include "../Src/Chebyshev/FChebCell.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
-#include "../Src/Chebyshev/FChebKernel.hpp"
-#include "../Src/Chebyshev/FChebSymKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebParticle.hpp"
+#include "../Src/Kernels/Chebyshev/FChebLeaf.hpp"
+#include "../Src/Kernels/Chebyshev/FChebCell.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebSymKernel.hpp"
 
 //#include "../Src/Utils/FTic.hpp"
 #include "../Src/Utils/FParameters.hpp"
diff --git a/Tests/testChebBinaryM2L.cpp b/Tests/testChebBinaryM2L.cpp
index 21f44c84106c17ec7262898d888796e7998e762d..99ac671b59a8d65d262a59730ba522ed94dee35d 100644
--- a/Tests/testChebBinaryM2L.cpp
+++ b/Tests/testChebBinaryM2L.cpp
@@ -29,8 +29,8 @@
 
 #include "../Src/Utils/FTic.hpp"
 #include "../Src/Utils/FMath.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
-#include "../Src/Chebyshev/FChebM2LHandler.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebM2LHandler.hpp"
 
 
 
diff --git a/Tests/testChebInterpolator.cpp b/Tests/testChebInterpolator.cpp
index 51317ceb597f83f4180c46565db181f08ad5717f..f091e2ea5eefca34ecf5d3000b1249fe9047569b 100644
--- a/Tests/testChebInterpolator.cpp
+++ b/Tests/testChebInterpolator.cpp
@@ -33,10 +33,10 @@
 #include "../Src/Utils/FAssertable.hpp"
 #include "../Src/Utils/F3DPosition.hpp"
 
-#include "../Src/Chebyshev/FChebParticle.hpp"
-#include "../Src/Chebyshev/FChebLeaf.hpp"
-#include "../Src/Chebyshev/FChebInterpolator.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebParticle.hpp"
+#include "../Src/Kernels/Chebyshev/FChebLeaf.hpp"
+#include "../Src/Kernels/Chebyshev/FChebInterpolator.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
 
 
 
diff --git a/Tests/testChebM2Lprecomputation.cpp b/Tests/testChebM2Lprecomputation.cpp
index bf1c4ab69dea2788f2da2a7e2fe33443234c5766..e86fb79d205dcca8d0576a1ecec34afb837d16a1 100644
--- a/Tests/testChebM2Lprecomputation.cpp
+++ b/Tests/testChebM2Lprecomputation.cpp
@@ -30,9 +30,9 @@
 #include "../Src/Utils/FTic.hpp"
 
 
-#include "../Src/Chebyshev/FChebTensor.hpp"
-#include "../Src/Chebyshev/FChebM2LHandler.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebTensor.hpp"
+#include "../Src/Kernels/Chebyshev/FChebM2LHandler.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
 
 
 
diff --git a/Tests/testChebOctree.cpp b/Tests/testChebOctree.cpp
index 2ba7d01b5c5ea90304c7aba84155e46e708228ba..d5e77ac09015a68371728d0cdacb09108b365a51 100644
--- a/Tests/testChebOctree.cpp
+++ b/Tests/testChebOctree.cpp
@@ -28,9 +28,9 @@
 #include "../Src/Utils/FAssertable.hpp"
 #include "../Src/Utils/F3DPosition.hpp"
 
-#include "../Src/Chebyshev/FChebParticle.hpp"
-#include "../Src/Chebyshev/FChebCell.hpp"
-#include "../Src/Chebyshev/FChebLeaf.hpp"
+#include "../Src/Kernels/Chebyshev/FChebParticle.hpp"
+#include "../Src/Kernels/Chebyshev/FChebCell.hpp"
+#include "../Src/Kernels/Chebyshev/FChebLeaf.hpp"
 
 
 /**
diff --git a/Tests/testChebSxUCBSy.cpp b/Tests/testChebSxUCBSy.cpp
index af5c173c071b1e7dd1d9e323b6fd857a8abb6135..5c50c35d59836092001bb8cb64a38e1c390b4825 100644
--- a/Tests/testChebSxUCBSy.cpp
+++ b/Tests/testChebSxUCBSy.cpp
@@ -32,11 +32,11 @@
 #include "../Src/Utils/FAssertable.hpp"
 #include "../Src/Utils/F3DPosition.hpp"
 
-#include "../Src/Chebyshev/FChebParticle.hpp"
-#include "../Src/Chebyshev/FChebLeaf.hpp"
-#include "../Src/Chebyshev/FChebInterpolator.hpp"
-#include "../Src/Chebyshev/FChebM2LHandler.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebParticle.hpp"
+#include "../Src/Kernels/Chebyshev/FChebLeaf.hpp"
+#include "../Src/Kernels/Chebyshev/FChebInterpolator.hpp"
+#include "../Src/Kernels/Chebyshev/FChebM2LHandler.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
 
 
 
diff --git a/Tests/testChebSymmetries.cpp b/Tests/testChebSymmetries.cpp
index b439a56ab5ca092878458db9cff9468889a6cfd7..12bf494ff6b1f9b7d37f2e4f772130bdd3cdf502 100644
--- a/Tests/testChebSymmetries.cpp
+++ b/Tests/testChebSymmetries.cpp
@@ -28,9 +28,9 @@
 
 #include "../Src/Utils/FTic.hpp"
 
-#include "../Src/Chebyshev/FChebTensor.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
-#include "../Src/Chebyshev/FChebSymmetries.hpp"
+#include "../Src/Kernels/Chebyshev/FChebTensor.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebSymmetries.hpp"
 
 
 
diff --git a/Tests/testCompareKernels.cpp b/Tests/testCompareKernels.cpp
index a451863bcf8524bc1aa97bde0f2ad1961edce049..c7923e124534aa09fdacf5e98accb46b678caf9a 100644
--- a/Tests/testCompareKernels.cpp
+++ b/Tests/testCompareKernels.cpp
@@ -35,11 +35,11 @@
 #include "../Src/Core/FFmmAlgorithmThread.hpp"
 
 // chebyshev kernel
-#include "../Src/Chebyshev/FChebParticle.hpp"
-#include "../Src/Chebyshev/FChebLeaf.hpp"
-#include "../Src/Chebyshev/FChebCell.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
-#include "../Src/Chebyshev/FChebKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebParticle.hpp"
+#include "../Src/Kernels/Chebyshev/FChebLeaf.hpp"
+#include "../Src/Kernels/Chebyshev/FChebCell.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebKernel.hpp"
 
 // spherical kernel
 #include "../Src/Components/FSimpleLeaf.hpp"
diff --git a/UTests/utestChebyshevDirect.cpp b/UTests/utestChebyshevDirect.cpp
index 419dfdff53f3c2afcc88483a6b8c71f0891c56e1..a6ad023bc377d41178c85fdb0bb173818f9db4d1 100644
--- a/UTests/utestChebyshevDirect.cpp
+++ b/UTests/utestChebyshevDirect.cpp
@@ -26,11 +26,11 @@
 
 #include "FUTester.hpp"
 
-#include "../Src/Chebyshev/FChebParticle.hpp"
-#include "../Src/Chebyshev/FChebLeaf.hpp"
-#include "../Src/Chebyshev/FChebCell.hpp"
-#include "../Src/Chebyshev/FChebMatrixKernel.hpp"
-#include "../Src/Chebyshev/FChebKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebParticle.hpp"
+#include "../Src/Kernels/Chebyshev/FChebLeaf.hpp"
+#include "../Src/Kernels/Chebyshev/FChebCell.hpp"
+#include "../Src/Kernels/Chebyshev/FChebMatrixKernel.hpp"
+#include "../Src/Kernels/Chebyshev/FChebKernel.hpp"
 
 /*
   In this test we compare the spherical fmm results and the direct results.