diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0d32253adf9b91335b3c230548880d9de0423494..89e2f96535652c0dddeae1586216cf51fb7829f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -78,38 +78,35 @@ INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
 # --- INCLUDE ----------------------------------------
 # ----------------------------------------------------
 SET(${PROJECT_NAME}_SOLVERS_HEADERS
-  eigenpy/solvers/solvers.hpp
-  eigenpy/solvers/preconditioners.hpp
-  eigenpy/solvers/IterativeSolverBase.hpp
-  eigenpy/solvers/LeastSquaresConjugateGradient.hpp
-  eigenpy/solvers/ConjugateGradient.hpp
-  eigenpy/solvers/SparseSolverBase.hpp
-  eigenpy/solvers/BasicPreconditioners.hpp
-  eigenpy/solvers/BFGSPreconditioners.hpp
+  include/eigenpy/solvers/solvers.hpp
+  include/eigenpy/solvers/preconditioners.hpp
+  include/eigenpy/solvers/IterativeSolverBase.hpp
+  include/eigenpy/solvers/LeastSquaresConjugateGradient.hpp
+  include/eigenpy/solvers/ConjugateGradient.hpp
+  include/eigenpy/solvers/SparseSolverBase.hpp
+  include/eigenpy/solvers/BasicPreconditioners.hpp
+  include/eigenpy/solvers/BFGSPreconditioners.hpp
   )
 
 SET(${PROJECT_NAME}_HEADERS
   ${${PROJECT_NAME}_SOLVERS_HEADERS}
-  eigenpy/eigenpy.hpp
-  eigenpy/exception.hpp
-  eigenpy/details.hpp
-  eigenpy/fwd.hpp
-  eigenpy/map.hpp
-  eigenpy/geometry.hpp
-  eigenpy/geometry-conversion.hpp
-  eigenpy/memory.hpp
-  eigenpy/registration.hpp
-  eigenpy/angle-axis.hpp
-  eigenpy/quaternion.hpp
-  eigenpy/stride.hpp
-  eigenpy/ref.hpp
+  include/eigenpy/eigenpy.hpp
+  include/eigenpy/exception.hpp
+  include/eigenpy/details.hpp
+  include/eigenpy/fwd.hpp
+  include/eigenpy/map.hpp
+  include/eigenpy/geometry.hpp
+  include/eigenpy/geometry-conversion.hpp
+  include/eigenpy/memory.hpp
+  include/eigenpy/registration.hpp
+  include/eigenpy/angle-axis.hpp
+  include/eigenpy/quaternion.hpp
+  include/eigenpy/stride.hpp
+  include/eigenpy/ref.hpp
 )
 
-EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E ${LINK}
-  ${${PROJECT_NAME}_SOURCE_DIR}/src
-  ${${PROJECT_NAME}_BINARY_DIR}/eigenpy)
 INCLUDE_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR}/include)
-INCLUDE_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR})
+INCLUDE_DIRECTORIES(${${PROJECT_NAME}_SOURCE_DIR}/include)
 
 # ----------------------------------------------------
 # --- TARGETS ----------------------------------------
diff --git a/src/angle-axis.hpp b/include/eigenpy/angle-axis.hpp
similarity index 100%
rename from src/angle-axis.hpp
rename to include/eigenpy/angle-axis.hpp
diff --git a/src/details.hpp b/include/eigenpy/details.hpp
similarity index 100%
rename from src/details.hpp
rename to include/eigenpy/details.hpp
diff --git a/src/eigenpy.hpp b/include/eigenpy/eigenpy.hpp
similarity index 100%
rename from src/eigenpy.hpp
rename to include/eigenpy/eigenpy.hpp
diff --git a/src/exception.hpp b/include/eigenpy/exception.hpp
similarity index 100%
rename from src/exception.hpp
rename to include/eigenpy/exception.hpp
diff --git a/src/fwd.hpp b/include/eigenpy/fwd.hpp
similarity index 100%
rename from src/fwd.hpp
rename to include/eigenpy/fwd.hpp
diff --git a/src/geometry-conversion.hpp b/include/eigenpy/geometry-conversion.hpp
similarity index 100%
rename from src/geometry-conversion.hpp
rename to include/eigenpy/geometry-conversion.hpp
diff --git a/src/geometry.hpp b/include/eigenpy/geometry.hpp
similarity index 100%
rename from src/geometry.hpp
rename to include/eigenpy/geometry.hpp
diff --git a/src/map.hpp b/include/eigenpy/map.hpp
similarity index 100%
rename from src/map.hpp
rename to include/eigenpy/map.hpp
diff --git a/src/memory.hpp b/include/eigenpy/memory.hpp
similarity index 100%
rename from src/memory.hpp
rename to include/eigenpy/memory.hpp
diff --git a/src/quaternion.hpp b/include/eigenpy/quaternion.hpp
similarity index 100%
rename from src/quaternion.hpp
rename to include/eigenpy/quaternion.hpp
diff --git a/src/ref.hpp b/include/eigenpy/ref.hpp
similarity index 100%
rename from src/ref.hpp
rename to include/eigenpy/ref.hpp
diff --git a/src/registration.hpp b/include/eigenpy/registration.hpp
similarity index 100%
rename from src/registration.hpp
rename to include/eigenpy/registration.hpp
diff --git a/src/solvers/BFGSPreconditioners.hpp b/include/eigenpy/solvers/BFGSPreconditioners.hpp
similarity index 100%
rename from src/solvers/BFGSPreconditioners.hpp
rename to include/eigenpy/solvers/BFGSPreconditioners.hpp
diff --git a/src/solvers/BasicPreconditioners.hpp b/include/eigenpy/solvers/BasicPreconditioners.hpp
similarity index 100%
rename from src/solvers/BasicPreconditioners.hpp
rename to include/eigenpy/solvers/BasicPreconditioners.hpp
diff --git a/src/solvers/ConjugateGradient.hpp b/include/eigenpy/solvers/ConjugateGradient.hpp
similarity index 100%
rename from src/solvers/ConjugateGradient.hpp
rename to include/eigenpy/solvers/ConjugateGradient.hpp
diff --git a/src/solvers/IterativeSolverBase.hpp b/include/eigenpy/solvers/IterativeSolverBase.hpp
similarity index 100%
rename from src/solvers/IterativeSolverBase.hpp
rename to include/eigenpy/solvers/IterativeSolverBase.hpp
diff --git a/src/solvers/LeastSquaresConjugateGradient.hpp b/include/eigenpy/solvers/LeastSquaresConjugateGradient.hpp
similarity index 100%
rename from src/solvers/LeastSquaresConjugateGradient.hpp
rename to include/eigenpy/solvers/LeastSquaresConjugateGradient.hpp
diff --git a/src/solvers/SparseSolverBase.hpp b/include/eigenpy/solvers/SparseSolverBase.hpp
similarity index 100%
rename from src/solvers/SparseSolverBase.hpp
rename to include/eigenpy/solvers/SparseSolverBase.hpp
diff --git a/src/solvers/preconditioners.hpp b/include/eigenpy/solvers/preconditioners.hpp
similarity index 100%
rename from src/solvers/preconditioners.hpp
rename to include/eigenpy/solvers/preconditioners.hpp
diff --git a/src/solvers/solvers.hpp b/include/eigenpy/solvers/solvers.hpp
similarity index 100%
rename from src/solvers/solvers.hpp
rename to include/eigenpy/solvers/solvers.hpp
diff --git a/src/stride.hpp b/include/eigenpy/stride.hpp
similarity index 100%
rename from src/stride.hpp
rename to include/eigenpy/stride.hpp