diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 36cf5a3a8833aa9d92568ad44c3798555415cffd..a0e58c7b29b46d0e16eef36afe9ca569bb745a42 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -52,7 +52,7 @@ IF(laser_scan_utils_FOUND)
 ENDIF(laser_scan_utils_FOUND)
 
 IF(Suitesparse_FOUND)
-    INCLUDE_DIRECTORIES(/usr/include/suitesparse)
+    INCLUDE_DIRECTORIES(${Suitesparse_INCLUDE_DIRS})
 ENDIF(Suitesparse_FOUND)
 
 #headers
diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt
index cc05783d0aecb18ae162462cb348f308ec2ae315..2e5cab0b90942af4c140435ab5b9a954b7ced633 100644
--- a/src/examples/CMakeLists.txt
+++ b/src/examples/CMakeLists.txt
@@ -57,8 +57,8 @@ IF(Suitesparse_FOUND)
     TARGET_LINK_LIBRARIES(test_iQR_wolf ${PROJECT_NAME})
     
     # Testing SPQR simple test
-    ADD_EXECUTABLE(test_SPQR test_SPQR.cpp)
-    TARGET_LINK_LIBRARIES(test_SPQR ${PROJECT_NAME})
+    #ADD_EXECUTABLE(test_SPQR test_SPQR.cpp)
+    #TARGET_LINK_LIBRARIES(test_SPQR ${PROJECT_NAME})
 ENDIF(Suitesparse_FOUND)
 
 # Building and populating the wolf tree 
diff --git a/src/examples/test_SPQR.cpp b/src/examples/test_SPQR.cpp
index 49f7215a19697f3c663f121c5f259af3005f6291..bbd535de6a3b5106fb36ba9ff6def36190807d40 100644
--- a/src/examples/test_SPQR.cpp
+++ b/src/examples/test_SPQR.cpp
@@ -6,7 +6,8 @@
  */
 
 #include <iostream>
-#include <Eigen/SPQRSupport>
+#include <eigen3/Eigen/SPQRSupport>
+#include <eigen3/Eigen/CholmodSupport>
 #include "SuiteSparseQR.hpp"
 
 using namespace Eigen;
diff --git a/src/examples/test_ccolamd.cpp b/src/examples/test_ccolamd.cpp
index f3d1e28aa3752abd6e01a1fbd9299510e45bfe24..1301856eb14a3d202066a0774f508cb5468f40e3 100644
--- a/src/examples/test_ccolamd.cpp
+++ b/src/examples/test_ccolamd.cpp
@@ -5,8 +5,6 @@
  *      Author: jvallve
  */
 
-typedef int IndexType;
-
 //std includes
 #include <cstdlib>
 #include <iostream>
@@ -17,15 +15,14 @@ typedef int IndexType;
 #include <ctime>
 #include <queue>
 
+// ccolamd
+#include "solver/ccolamd_ordering.h"
+
 // eigen includes
-#define EIGEN_DEFAULT_DENSE_INDEX_TYPE IndexType
 #include <eigen3/Eigen/OrderingMethods>
 #include <eigen3/Eigen/CholmodSupport>
 #include <eigen3/Eigen/SparseLU>
 
-// ccolamd
-#include "solver/ccolamd_ordering.h"
-
 using namespace Eigen;
 
 //main
diff --git a/src/examples/test_permutations.cpp b/src/examples/test_permutations.cpp
index c570bd1105c7fe59c32460d8b8df373dd03dec17..5d28ec06c19c21df2ba3c5455d13195f0136eb81 100644
--- a/src/examples/test_permutations.cpp
+++ b/src/examples/test_permutations.cpp
@@ -18,8 +18,6 @@
 
 // eigen includes
 #include <eigen3/Eigen/OrderingMethods>
-#include <eigen3/Eigen/CholmodSupport>
-#include <eigen3/Eigen/SparseLU>
 
 
 using namespace Eigen;
diff --git a/src/solver/CMakeLists.txt b/src/solver/CMakeLists.txt
index 32da45f8814ae4df98903d50fb96e483aa247c85..60df425ecf4f7c061b022515ffa4456b457604e7 100644
--- a/src/solver/CMakeLists.txt
+++ b/src/solver/CMakeLists.txt
@@ -1,4 +1,12 @@
 SET(HDRS_SOLVER
-    ccolamd_ordering.h )
-SET(HDRS_SOLVER
+    ccolamd_ordering.h 
+    cost_function_base.h
+    cost_function_sparse_base.h
+    cost_function_sparse.h
+    qr_solver.h
+    solver_manager.h
+    solver_QR.h
+    sparse_utils.h)
+SET(SRCS_SOLVER
+    solver_manager.cpp
     )
\ No newline at end of file
diff --git a/src/solver/ccolamd_ordering.h b/src/solver/ccolamd_ordering.h
index 7a643b2801a1b93a5c6b8e4ffc8c77657578ffd0..82b0107987785c1216b52118624b0ef438503820 100644
--- a/src/solver/ccolamd_ordering.h
+++ b/src/solver/ccolamd_ordering.h
@@ -8,9 +8,18 @@
 #ifndef TRUNK_SRC_WOLF_SOLVER_CCOLAMD_ORDERING_H_
 #define TRUNK_SRC_WOLF_SOLVER_CCOLAMD_ORDERING_H_
 
+
+typedef int IndexType;
+
 //std includes
 #include <iostream>
 
+// Eigen includes
+#define EIGEN_DEFAULT_DENSE_INDEX_TYPE IndexType
+#include <eigen3/Eigen/OrderingMethods>
+#include <eigen3/Eigen/CholmodSupport>
+#include <eigen3/Eigen/SparseLU>
+
 // ccolamd
 #include "ccolamd.h"