diff --git a/CMakeLists.txt b/CMakeLists.txt
index c5441f95a9ffad801f36c8adc1060bca82fbc119..3c6cd3802f06a76c8dc5f9aff1cea5d460897a66 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -116,17 +116,7 @@ SET(RTKLIB_SRC
     ${RTKLIB_SRC_DIR}/rcv/ublox.c)
 
 # application header files
-SET(HEADERS
-    include/gnss_utils/observations.h
-    include/gnss_utils/navigation.h
-    include/gnss_utils/tdcp.h
-    include/gnss_utils/ublox_raw.h
-    ${RTKLIB_SRC_DIR}/rtklib.h)
-SET(HEADERS_UTILS
-    include/gnss_utils/utils/utils.h
-    include/gnss_utils/utils/transformations.h
-    include/gnss_utils/utils/rcv_position.h
-    include/gnss_utils/utils/sat_position.h)
+# NOT SET SINCE WE COPY THE WHOLE include FOLDER
 
 # Eigen #######
 FIND_PACKAGE(Eigen3 REQUIRED)
@@ -159,8 +149,8 @@ INSTALL(TARGETS ${PROJECT_NAME}
         RUNTIME DESTINATION bin
         LIBRARY DESTINATION lib/iri-algorithms
         ARCHIVE DESTINATION lib/iri-algorithms)
-INSTALL(FILES ${HEADERS} DESTINATION include/iri-algorithms/gnss_utils)
-INSTALL(FILES ${HEADERS_UTILS} DESTINATION include/iri-algorithms/gnss_utils/utils)
+INSTALL(DIRECTORY include/gnss_utils DESTINATION include/iri-algorithms)
+INSTALL(FILES ${RTKLIB_SRC_DIR}/rtklib.h DESTINATION include/iri-algorithms/gnss_utils)
 INSTALL(FILES Findgnss_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
 INSTALL(FILES "${GNSS_UTILS_CONFIG_DIR}/config.h"
   DESTINATION include/iri-algorithms/gnss_utils/internal)
diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..4d9f83f2bd6ab7a7a70fa1b63e8c3d577be4011b
--- /dev/null
+++ b/include/gnss_utils/gnss_utils.h
@@ -0,0 +1,8 @@
+#ifndef INCLUDE_GNSS_UTILS_GNSS_UTILS_H_
+#define INCLUDE_GNSS_UTILS_GNSS_UTILS_H_
+
+extern "C" {
+#include "rtklib.h"
+}
+
+#endif
\ No newline at end of file
diff --git a/include/gnss_utils/navigation.h b/include/gnss_utils/navigation.h
index 2fc13a71c0eb45a88b4570c4be33db1074b12c7b..95b3ad0bc97ebd26873098b857bb3447003a1f3c 100644
--- a/include/gnss_utils/navigation.h
+++ b/include/gnss_utils/navigation.h
@@ -5,9 +5,7 @@
 #include <iostream>
 #include <memory>
 
-extern "C" {
-#include "rtklib.h"
-}
+#include "gnss_utils/gnss_utils.h"
 
 namespace GnssUtils
 {
diff --git a/include/gnss_utils/observations.h b/include/gnss_utils/observations.h
index db14f81068439756c7b9c72c8db2c3b12ef5abe3..f3a0846a26a39cdca1d688f3684e759452331f99 100644
--- a/include/gnss_utils/observations.h
+++ b/include/gnss_utils/observations.h
@@ -7,12 +7,9 @@
 #include <memory>
 #include <cassert>
 
+#include "gnss_utils/gnss_utils.h"
 #include "gnss_utils/utils/utils.h"
 
-extern "C" {
-#include "rtklib.h"
-}
-
 namespace GnssUtils
 {
 class Observations;
diff --git a/include/gnss_utils/utils/rcv_position.h b/include/gnss_utils/utils/rcv_position.h
index 77ec4e77ef3e8d3436601341b3e8868d6018433b..9755c14f8f453758df77e432ad30d40b740d9441 100644
--- a/include/gnss_utils/utils/rcv_position.h
+++ b/include/gnss_utils/utils/rcv_position.h
@@ -15,10 +15,7 @@
 #include "gnss_utils/observations.h"
 #include "gnss_utils/navigation.h"
 #include "gnss_utils/utils/transformations.h"
-
-extern "C" {
-#include "rtklib.h"
-}
+#include "gnss_utils/gnss_utils.h"
 
 namespace GnssUtils
 {
diff --git a/include/gnss_utils/utils/sat_position.h b/include/gnss_utils/utils/sat_position.h
index 376d406a2a1f13b32ce7122d293df408e98085d9..3e90436c2caea89e3e77fd57e99acbe8ce727813 100644
--- a/include/gnss_utils/utils/sat_position.h
+++ b/include/gnss_utils/utils/sat_position.h
@@ -15,10 +15,7 @@
 #include "gnss_utils/observations.h"
 #include "gnss_utils/navigation.h"
 #include "gnss_utils/utils/transformations.h"
-
-extern "C" {
-#include "rtklib.h"
-}
+#include "gnss_utils/gnss_utils.h"
 
 namespace GnssUtils
 {
diff --git a/include/gnss_utils/utils/transformations.h b/include/gnss_utils/utils/transformations.h
index ebed329289ac0d58e6555347a71634565dc108e9..caa22c473af8509cda43970bf7f98cdef05ed99f 100644
--- a/include/gnss_utils/utils/transformations.h
+++ b/include/gnss_utils/utils/transformations.h
@@ -11,10 +11,7 @@
 #include <eigen3/Eigen/Dense>
 #include <eigen3/Eigen/Geometry>
 #include <eigen3/Eigen/Sparse>
-
-extern "C" {
-#include "rtklib.h"
-}
+#include "gnss_utils/gnss_utils.h"
 
 namespace GnssUtils
 {
diff --git a/include/gnss_utils/utils/utils.h b/include/gnss_utils/utils/utils.h
index ea0b647c2a463c7b7641cd1b01cd69466d920ee7..ad1c627f68272fd3aa425e0028c99cdba8354b1b 100644
--- a/include/gnss_utils/utils/utils.h
+++ b/include/gnss_utils/utils/utils.h
@@ -5,15 +5,13 @@
 #include <iostream>
 #include <memory>
 #include <string>
+
 #include "gnss_utils/internal/config.h"
+#include "gnss_utils/gnss_utils.h"
 
 #define ARRAY_SIZE(arr) sizeof(arr) / sizeof(arr[0])
 #define GNSSUTILS_MSG "--GnssUtils--"
 
-extern "C" {
-#include "rtklib.h"
-}
-
 namespace GnssUtils
 {
 void print(std::string& _msg);
@@ -46,4 +44,4 @@ bool operator!=(const obsd_t& obs1, const obsd_t& obs2);
 bool operator==(const obs_t& obs1, const obs_t& obs2);
 bool operator!=(const obs_t& obs1, const obs_t& obs2);
 
-#endif // INCLUDE_GNSS_UTILS_UTILS_UTILS_H_
+#endif  // INCLUDE_GNSS_UTILS_UTILS_UTILS_H_
diff --git a/test/gtest_navigation.cpp b/test/gtest_navigation.cpp
index 18e8c638aa4ce62dcdfaa0a702f7be18652c5c9c..5170cf11310248899fd967b3b870f974a6368b2f 100644
--- a/test/gtest_navigation.cpp
+++ b/test/gtest_navigation.cpp
@@ -1,5 +1,5 @@
 #include "gtest/utils_gtest.h"
-#include "gnss_utils/utils/gnss_utils.h"
+#include "gnss_utils/gnss_utils.h"
 
 TEST(NavigationTests, Whatever)
 {