diff --git a/src/BVH/BV_splitter.h b/include/hpp/fcl/internal/BV_splitter.h
similarity index 100%
rename from src/BVH/BV_splitter.h
rename to include/hpp/fcl/internal/BV_splitter.h
diff --git a/include/hpp/fcl/internal/traversal_node_bvh_shape.h b/include/hpp/fcl/internal/traversal_node_bvh_shape.h
index 7a66586a983f2f6d05902815de487478f4a7341e..37162e5cadfe3837e7f8a2020580a2406b0b3beb 100644
--- a/include/hpp/fcl/internal/traversal_node_bvh_shape.h
+++ b/include/hpp/fcl/internal/traversal_node_bvh_shape.h
@@ -44,7 +44,7 @@
 #include <hpp/fcl/collision_data.h>
 #include <hpp/fcl/shape/geometric_shapes.h>
 #include <hpp/fcl/narrowphase/narrowphase.h>
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 #include <hpp/fcl/internal/traversal_node_base.h>
 #include <hpp/fcl/internal/traversal.h>
 #include <hpp/fcl/BVH/BVH_model.h>
diff --git a/include/hpp/fcl/internal/traversal_node_octree.h b/include/hpp/fcl/internal/traversal_node_octree.h
index 7569a023b76f13fa9f795f7772b484f4caafc26d..e2857da225d33f3a4c1e843d84914ac518a30539 100644
--- a/include/hpp/fcl/internal/traversal_node_octree.h
+++ b/include/hpp/fcl/internal/traversal_node_octree.h
@@ -45,7 +45,7 @@
 #include <hpp/fcl/narrowphase/narrowphase.h>
 #include <hpp/fcl/octree.h>
 #include <hpp/fcl/BVH/BVH_model.h>
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 
 namespace hpp
 {
diff --git a/include/hpp/fcl/internal/traversal_node_shapes.h b/include/hpp/fcl/internal/traversal_node_shapes.h
index 3a1ba178a8e2aea863874b04c516851174516244..eff6de320de79356b5ffd09954a8525741f6e5a0 100644
--- a/include/hpp/fcl/internal/traversal_node_shapes.h
+++ b/include/hpp/fcl/internal/traversal_node_shapes.h
@@ -43,7 +43,7 @@
 #include <hpp/fcl/collision_data.h>
 #include <hpp/fcl/narrowphase/narrowphase.h>
 #include <hpp/fcl/BV/BV.h>
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 #include <hpp/fcl/internal/traversal_node_base.h>
 
 namespace hpp
diff --git a/include/hpp/fcl/internal/geometric_shapes_utility.h b/include/hpp/fcl/shape/geometric_shapes_utility.h
similarity index 100%
rename from include/hpp/fcl/internal/geometric_shapes_utility.h
rename to include/hpp/fcl/shape/geometric_shapes_utility.h
diff --git a/src/BVH/BVH_model.cpp b/src/BVH/BVH_model.cpp
index 86523a184631587ca551ab9075b463a44302b9ee..a56cf1ac43b7dd642fcea28cf0d257acf6da37d3 100644
--- a/src/BVH/BVH_model.cpp
+++ b/src/BVH/BVH_model.cpp
@@ -43,7 +43,7 @@
 #include <hpp/fcl/BV/BV.h>
 #include <hpp/fcl/shape/convex.h>
 
-#include "BV_splitter.h"
+#include <hpp/fcl/internal/BV_splitter.h>
 #include <hpp/fcl/internal/BV_fitter.h>
 
 namespace hpp
diff --git a/src/BVH/BVH_utility.cpp b/src/BVH/BVH_utility.cpp
index 171dd1703ed3b29527164bb2287d087c9aef147a..c408fc613aeb351e46037a2e0adcf00b47ea2ccc 100644
--- a/src/BVH/BVH_utility.cpp
+++ b/src/BVH/BVH_utility.cpp
@@ -38,7 +38,7 @@
 
 #include <hpp/fcl/BVH/BVH_utility.h>
 #include <hpp/fcl/narrowphase/narrowphase.h>
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 
 namespace hpp
 {
diff --git a/src/BVH/BV_splitter.cpp b/src/BVH/BV_splitter.cpp
index c709ed63862df7d09469cf063258de1f2a798669..bb5ac2e80034c6f3e5dc6548f121fd10aeb67a0b 100644
--- a/src/BVH/BV_splitter.cpp
+++ b/src/BVH/BV_splitter.cpp
@@ -35,7 +35,7 @@
 
 /** \author Jia Pan */
 
-#include "BV_splitter.h"
+#include <hpp/fcl/internal/BV_splitter.h>
 
 namespace hpp
 {
diff --git a/src/collision_func_matrix.cpp b/src/collision_func_matrix.cpp
index 33c92250a19b493b9cd8edd6fbb1fd35082c9756..efffb50c2394f05a55136bb80247c8fc9da075aa 100644
--- a/src/collision_func_matrix.cpp
+++ b/src/collision_func_matrix.cpp
@@ -42,7 +42,7 @@
 #include <../src/collision_node.h>
 #include <hpp/fcl/narrowphase/narrowphase.h>
 #include <../src/distance_func_matrix.h>
-#include <hpp/fcl/internal/traits_traversal.h>
+#include <../src/traits_traversal.h>
 
 namespace hpp
 {
diff --git a/src/distance_func_matrix.cpp b/src/distance_func_matrix.cpp
index 11cd679bc2afe0c4eac90dff2ed22962c2b650b0..7eb6e61274c5b1656ac657c6bb80c196a85e54b1 100644
--- a/src/distance_func_matrix.cpp
+++ b/src/distance_func_matrix.cpp
@@ -39,7 +39,7 @@
 
 #include <../src/collision_node.h>
 #include <hpp/fcl/internal/traversal_node_setup.h>
-#include <hpp/fcl/internal/traits_traversal.h>
+#include <../src/traits_traversal.h>
 
 namespace hpp
 {
diff --git a/src/narrowphase/narrowphase.cpp b/src/narrowphase/narrowphase.cpp
index 03068fcb0212be51c07aa53d8432f57f50086a0c..829855fbf5eaddd55deb8529d8f01229e21ce851 100644
--- a/src/narrowphase/narrowphase.cpp
+++ b/src/narrowphase/narrowphase.cpp
@@ -40,7 +40,7 @@
 #include <vector>
 #include <boost/math/constants/constants.hpp>
 
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 #include <hpp/fcl/internal/intersect.h>
 #include "details.h"
 
diff --git a/src/shape/geometric_shapes.cpp b/src/shape/geometric_shapes.cpp
index b53651d19a098e32069356138536e90481517d20..ddf0cb4febe3b12f963e78f612fc98d082d3ee0b 100644
--- a/src/shape/geometric_shapes.cpp
+++ b/src/shape/geometric_shapes.cpp
@@ -37,7 +37,7 @@
 
 
 #include <hpp/fcl/shape/geometric_shapes.h>
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 
 namespace hpp
 {
diff --git a/src/shape/geometric_shapes_utility.cpp b/src/shape/geometric_shapes_utility.cpp
index 2f233c82d527df9f8465e10f631a86cbd3aa951f..c70049c93dad6303f58d4dbd123728f0ade8378e 100644
--- a/src/shape/geometric_shapes_utility.cpp
+++ b/src/shape/geometric_shapes_utility.cpp
@@ -36,7 +36,7 @@
 /** \author Jia Pan */
 
 
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 #include <hpp/fcl/internal/BV_fitter.h>
 #include <hpp/fcl/internal/tools.h>
 
diff --git a/include/hpp/fcl/internal/traits_traversal.h b/src/traits_traversal.h
similarity index 100%
rename from include/hpp/fcl/internal/traits_traversal.h
rename to src/traits_traversal.h
diff --git a/test/benchmark.cpp b/test/benchmark.cpp
index 42d6126f25c12ce55b4eed4a7dc0a60e05a2b44b..2b120ad0963bc32ac7d34ff2e8711b2b13767062 100644
--- a/test/benchmark.cpp
+++ b/test/benchmark.cpp
@@ -19,7 +19,7 @@
 #include <hpp/fcl/internal/traversal_node_setup.h>
 #include <hpp/fcl/internal/traversal_node_bvhs.h>
 #include "../src/collision_node.h"
-#include "../src/BVH/BV_splitter.h"
+#include <hpp/fcl/internal/BV_splitter.h>
 
 #include "utility.h"
 #include "fcl_resources/config.h"
diff --git a/test/collision.cpp b/test/collision.cpp
index 0a2cd80d83b8a3976db45099db1fc2f3b3385708..178a761275f5ce8288729a90a9c72936790941f5 100644
--- a/test/collision.cpp
+++ b/test/collision.cpp
@@ -56,7 +56,7 @@
 #include <hpp/fcl/internal/traversal_node_bvhs.h>
 #include <hpp/fcl/internal/traversal_node_setup.h>
 #include "../src/collision_node.h"
-#include "../src/BVH/BV_splitter.h"
+#include <hpp/fcl/internal/BV_splitter.h>
 
 #include "utility.h"
 #include "fcl_resources/config.h"
diff --git a/test/distance.cpp b/test/distance.cpp
index 27944c2a2f0ccb929ddc7e067ff90acbcca43a71..dc4c2489aa433d1591e7dda3b04b742b7f091c18 100644
--- a/test/distance.cpp
+++ b/test/distance.cpp
@@ -45,7 +45,7 @@
 #include <hpp/fcl/internal/traversal_node_bvhs.h>
 #include <hpp/fcl/internal/traversal_node_setup.h>
 #include "../src/collision_node.h"
-#include "../src/BVH/BV_splitter.h"
+#include <hpp/fcl/internal/BV_splitter.h>
 
 #include "utility.h"
 #include "fcl_resources/config.h"
diff --git a/test/frontlist.cpp b/test/frontlist.cpp
index 119f48221735c50c38869e0baf2967d4479ae294..c46aca482f7bec72544102382d5da9ef15af49f3 100644
--- a/test/frontlist.cpp
+++ b/test/frontlist.cpp
@@ -44,7 +44,7 @@
 #include <hpp/fcl/internal/traversal_node_bvhs.h>
 #include <hpp/fcl/internal/traversal_node_setup.h>
 #include <../src/collision_node.h>
-#include <../src/BVH/BV_splitter.h>
+#include <hpp/fcl/internal/BV_splitter.h>
 #include "utility.h"
 
 #include "fcl_resources/config.h"
diff --git a/test/general_test.cpp b/test/general_test.cpp
index 11c9186ce6d27b2a58a2ad2d923afc2376990ce1..144eb5fc3ad31c2be3cc35465f6dd738f9a0b718 100644
--- a/test/general_test.cpp
+++ b/test/general_test.cpp
@@ -1,5 +1,5 @@
 #include <hpp/fcl/shape/geometric_shapes.h>
-#include <hpp/fcl/internal/geometric_shapes_utility.h>
+#include <hpp/fcl/shape/geometric_shapes_utility.h>
 #include <hpp/fcl/narrowphase/narrowphase.h>
 #include <iostream>
 #include <hpp/fcl/collision.h>
diff --git a/test/octree.cpp b/test/octree.cpp
index 406339dcedc7c1202d2176f0817472aac10cf5b0..5632a496190508769b5f5e174002d88299966b9c 100644
--- a/test/octree.cpp
+++ b/test/octree.cpp
@@ -44,7 +44,7 @@
 #include <hpp/fcl/collision.h>
 #include <hpp/fcl/distance.h>
 #include <hpp/fcl/shape/geometric_shapes.h>
-#include "../src/BVH/BV_splitter.h"
+#include <hpp/fcl/internal/BV_splitter.h>
 
 #include "utility.h"
 #include "fcl_resources/config.h"