diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 0e940a527b62a183a6ad52dbfdb0fee2fd299d20..8de004e6d5e3e700b715f8185674f5237e445cb6 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -1,38 +1,50 @@
-### Get the headers paths
-SET(include_list "${CMAKE_CURRENT_SOURCE_DIR}/dynamic-graph-API.h")
-FILE(GLOB_RECURSE headers_list 
-	${PROJECT_SOURCE_DIR}/src/*.h
-)
-FILE(GLOB_RECURSE templates_list 
-	${PROJECT_SOURCE_DIR}/src/*.t.cpp
+SET(${PROJECT_NAME}_HEADERS
+contiifstream.h
+debug.h
+
+dynamic-graph-api.h
+
+entity.h
+factory.h
+interpreter.h
+plugin-loader.h
+pool.h
+
+exception-abstract.h
+exception-factory.h
+exception-signal.h
+
+
+shell-functions.h
+shell-procedure.h
+
+signal.h
+signal-array.h
+signal-base.h
+signal-ptr.h
+signal-time-dependant.h
+signal-ptr.t.cpp
+signal.t.cpp
+time-dependency.h
+time-dependency.t.cpp
 )
-LIST(APPEND include_list ${headers_list})
-LIST(APPEND include_list ${templates_list})
-
-### Copy headers to include directories
-SET(HEADER_IN_INCLUDE_DIR "")
-FOREACH(header ${include_list})
-	GET_FILENAME_COMPONENT(headerName ${header} NAME)
-	
-	ADD_CUSTOM_COMMAND(
-	   OUTPUT  ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/${headerName}
-	   COMMAND ${CMAKE_COMMAND} -E copy ${header}
-	   		${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/${headerName}
-	)
-	
-	INSTALL(FILES
-	   ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/${headerName}
-	   DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}
-	   PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE)
-  	
-  	SET(HEADER_IN_INCLUDE_DIR ${HEADER_IN_INCLUDE_DIR} 
-       ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/${headerName})
-ENDFOREACH(header)
-
-### Create a top level rule to copy all the headers from src to include/dynamic-graph
-ADD_CUSTOM_TARGET(headers ALL
-		   DEPENDS ${HEADER_IN_INCLUDE_DIR})
-
-### Dependency of the main library on the headers
-ADD_DEPENDENCIES(${PROJECT_NAME}
-	headers)
+
+# Recreate correct path for the headers
+#--------------------------------------
+
+SET(fullpath_${PROJECT_NAME}_HEADERS)
+FOREACH(lHeader ${${PROJECT_NAME}_HEADERS})
+ SET(fullpath_${PROJECT_NAME}_HEADERS
+   ${fullpath_${PROJECT_NAME}_HEADERS}
+   ./${PROJECT_NAME}/${lHeader}
+ )
+
+ENDFOREACH(lHeader)
+
+#----------------------------------------------------
+# Install procedure for the header files
+#----------------------------------------------------
+INSTALL(FILES ${fullpath_${PROJECT_NAME}_HEADERS}
+       DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}
+       PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+)
\ No newline at end of file
diff --git a/src/debug/contiifstream.h b/include/dynamic-graph/contiifstream.h
similarity index 100%
rename from src/debug/contiifstream.h
rename to include/dynamic-graph/contiifstream.h
diff --git a/src/debug/debug.h b/include/dynamic-graph/debug.h
similarity index 99%
rename from src/debug/debug.h
rename to include/dynamic-graph/debug.h
index 664f5cc89b9b5f9fbe5e0901228be786f65b3f30..35704957957c0c3453b01318c67d719e3f133d11 100644
--- a/src/debug/debug.h
+++ b/include/dynamic-graph/debug.h
@@ -42,7 +42,7 @@
 #include <fstream>
 #include <sstream>
 #include <stdarg.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
  
 /* -------------------------------------------------------------------------- */
diff --git a/include/dynamic-graph-api.h b/include/dynamic-graph/dynamic-graph-api.h
similarity index 100%
rename from include/dynamic-graph-api.h
rename to include/dynamic-graph/dynamic-graph-api.h
diff --git a/src/dgraph/entity.h b/include/dynamic-graph/entity.h
similarity index 98%
rename from src/dgraph/entity.h
rename to include/dynamic-graph/entity.h
index 94662255f499cf458547de45e9912dfd58660d18..b1266492df22993081c69cd90e5123a0a30a4e6c 100644
--- a/src/dgraph/entity.h
+++ b/include/dynamic-graph/entity.h
@@ -30,7 +30,7 @@
 #include <dynamic-graph/signal-base.h>
 #include <dynamic-graph/exception-factory.h>
 #include <dynamic-graph/signal-array.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 /* --- STD --- */
 #include <string>
diff --git a/src/exception/exception-abstract.h b/include/dynamic-graph/exception-abstract.h
similarity index 98%
rename from src/exception/exception-abstract.h
rename to include/dynamic-graph/exception-abstract.h
index d3e96117798af9f992bd1e642a2d962d2c024db6..2b2acfa243a2abaf62e51c917223784559b53eec 100644
--- a/src/exception/exception-abstract.h
+++ b/include/dynamic-graph/exception-abstract.h
@@ -29,7 +29,7 @@
 /* Classes standards. */
 #include <iostream>                /* Classe ostream.    */
 #include <string>                  /* Classe string.     */
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 
 // Uncomment this macros to have lines parameter on the throw display
diff --git a/src/exception/exception-factory.h b/include/dynamic-graph/exception-factory.h
similarity index 97%
rename from src/exception/exception-factory.h
rename to include/dynamic-graph/exception-factory.h
index 71cfbfce8c0c322c661d0b8c3e73794a7c6a32bb..ea5f60e0506ffa9acfc45c496531fc46d6c195f2 100644
--- a/src/exception/exception-factory.h
+++ b/include/dynamic-graph/exception-factory.h
@@ -27,7 +27,7 @@
 
 
 #include <dynamic-graph/exception-abstract.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 /* --------------------------------------------------------------------- */
 /* --- CLASS ----------------------------------------------------------- */
diff --git a/src/exception/exception-signal.h b/include/dynamic-graph/exception-signal.h
similarity index 97%
rename from src/exception/exception-signal.h
rename to include/dynamic-graph/exception-signal.h
index 5fc6368d49d531c359ba1161437d285b1e43db8b..9834b31c0f2724692b8da17b25b45c9495125b42 100644
--- a/src/exception/exception-signal.h
+++ b/include/dynamic-graph/exception-signal.h
@@ -27,7 +27,7 @@
 
 
 #include <dynamic-graph/exception-abstract.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 /* --------------------------------------------------------------------- */
 /* --- CLASS ----------------------------------------------------------- */
diff --git a/src/dgraph/factory.h b/include/dynamic-graph/factory.h
similarity index 98%
rename from src/dgraph/factory.h
rename to include/dynamic-graph/factory.h
index 20b88e6c915b604835e9fe6fdbfc1c8ef658b81f..bb679d06be2bd5feec76da738a85bc7bd70565e8 100644
--- a/src/dgraph/factory.h
+++ b/include/dynamic-graph/factory.h
@@ -32,7 +32,7 @@
 
 /* --- SOT --- */
 #include <dynamic-graph/exception-factory.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 namespace dynamicgraph {
 
diff --git a/src/dgraph/interpreter.h b/include/dynamic-graph/interpreter.h
similarity index 99%
rename from src/dgraph/interpreter.h
rename to include/dynamic-graph/interpreter.h
index f305d995876a711e0df896388e621824818ec07e..e2aff77d5beb48f9d9677661cb171691a3085bc6 100644
--- a/src/dgraph/interpreter.h
+++ b/include/dynamic-graph/interpreter.h
@@ -30,7 +30,7 @@
 #include <dynamic-graph/signal-base.h>
 #include <dynamic-graph/exception-factory.h>
 #include <dynamic-graph/pool.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 /* --- STD --- */
 #include <string>
diff --git a/src/dgraph/plugin-loader.h b/include/dynamic-graph/plugin-loader.h
similarity index 98%
rename from src/dgraph/plugin-loader.h
rename to include/dynamic-graph/plugin-loader.h
index da01ec25866e80f28cc8822ed45a1837aac99210..8fbf85925ab55e0798454868d5964d0b30119c3b 100644
--- a/src/dgraph/plugin-loader.h
+++ b/include/dynamic-graph/plugin-loader.h
@@ -33,7 +33,7 @@
 
 /* --- SOT --- */
 #include <dynamic-graph/exception-factory.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 namespace dynamicgraph {
 
diff --git a/src/dgraph/pool.h b/include/dynamic-graph/pool.h
similarity index 98%
rename from src/dgraph/pool.h
rename to include/dynamic-graph/pool.h
index 50543be56859a0c536513b738e3c7219e03f934f..d9d41d1bfe9b77669bc730a06de46f0d2b424fd5 100644
--- a/src/dgraph/pool.h
+++ b/include/dynamic-graph/pool.h
@@ -32,7 +32,7 @@
 /* --- SOT --- */
 #include <dynamic-graph/exception-factory.h>
 #include <dynamic-graph/signal-base.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 namespace dynamicgraph
 {
diff --git a/src/dgraph/shell-functions.h b/include/dynamic-graph/shell-functions.h
similarity index 100%
rename from src/dgraph/shell-functions.h
rename to include/dynamic-graph/shell-functions.h
diff --git a/src/dgraph/shell-procedure.h b/include/dynamic-graph/shell-procedure.h
similarity index 100%
rename from src/dgraph/shell-procedure.h
rename to include/dynamic-graph/shell-procedure.h
diff --git a/src/signal/signal-array.h b/include/dynamic-graph/signal-array.h
similarity index 98%
rename from src/signal/signal-array.h
rename to include/dynamic-graph/signal-array.h
index dd34fa589891bbb34461204405ba69eaee438719..d4293400d2693a7ce8cf48a47a162712b96c309d 100644
--- a/src/signal/signal-array.h
+++ b/include/dynamic-graph/signal-array.h
@@ -24,7 +24,7 @@
 #define __SIGNAL_ARRAY_HH
 
 #include <dynamic-graph/signal-base.h>
-#include <dynamic-graph/dynamic-graph-API.h>
+#include <dynamic-graph/dynamic-graph-api.h>
 
 namespace dynamicgraph {
 
diff --git a/src/signal/signal-base.h b/include/dynamic-graph/signal-base.h
similarity index 100%
rename from src/signal/signal-base.h
rename to include/dynamic-graph/signal-base.h
diff --git a/src/signal/signal-ptr.h b/include/dynamic-graph/signal-ptr.h
similarity index 100%
rename from src/signal/signal-ptr.h
rename to include/dynamic-graph/signal-ptr.h
diff --git a/src/signal/signal-ptr.t.cpp b/include/dynamic-graph/signal-ptr.t.cpp
similarity index 100%
rename from src/signal/signal-ptr.t.cpp
rename to include/dynamic-graph/signal-ptr.t.cpp
diff --git a/src/signal/signal-time-dependant.h b/include/dynamic-graph/signal-time-dependant.h
similarity index 100%
rename from src/signal/signal-time-dependant.h
rename to include/dynamic-graph/signal-time-dependant.h
diff --git a/src/signal/signal.h b/include/dynamic-graph/signal.h
similarity index 100%
rename from src/signal/signal.h
rename to include/dynamic-graph/signal.h
diff --git a/src/signal/signal.t.cpp b/include/dynamic-graph/signal.t.cpp
similarity index 100%
rename from src/signal/signal.t.cpp
rename to include/dynamic-graph/signal.t.cpp
diff --git a/src/signal/time-dependency.h b/include/dynamic-graph/time-dependency.h
similarity index 100%
rename from src/signal/time-dependency.h
rename to include/dynamic-graph/time-dependency.h
diff --git a/src/signal/time-dependency.t.cpp b/include/dynamic-graph/time-dependency.t.cpp
similarity index 100%
rename from src/signal/time-dependency.t.cpp
rename to include/dynamic-graph/time-dependency.t.cpp
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 09f5d2a6083b1c026d9b0be8bb5bd5d119155227..3161df42b2c64f5a264c4477b57de826a4934cf3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,7 +4,7 @@
 SET(LIBRARY_NAME ${PROJECT_NAME})
 
 INCLUDE_DIRECTORIES(
-	${${PROJECT_NAME}_BINARY_DIR}/include
+	${CMAKE_CURRENT_SOURCE_DIR}/../include
 )
 
 ADD_DEFINITIONS(-DDEBUG=2)
@@ -64,4 +64,4 @@ SET_TARGET_PROPERTIES(${plugin}
    
 INSTALL(TARGETS ${plugin}
 		DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/plugin)
-ENDFOREACH(plugin)
\ No newline at end of file
+ENDFOREACH(plugin_file)
\ No newline at end of file
diff --git a/unitTesting/CMakeLists.txt b/unitTesting/CMakeLists.txt
index 116aebba3a57edbf79dba2a04aba36248b31858c..51df61e04df245c5ead844c3bdf3873c8335eb76 100644
--- a/unitTesting/CMakeLists.txt
+++ b/unitTesting/CMakeLists.txt
@@ -11,7 +11,7 @@ ADD_EXECUTABLE(${EXECUTABLE_NAME}
   test_shell.cpp)
 
 INCLUDE_DIRECTORIES(
-	${${PROJECT_NAME}_BINARY_DIR}/include
+	${CMAKE_CURRENT_SOURCE_DIR}/../include 
 )
 
 LINK_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR}/lib)