diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f6d43d2d4c233fef99abf227ec9c41e058f9c84..8987e7b7f0b1fc49ef8181b63ceac9a90ff57ff4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -97,16 +97,16 @@ ENDIF()
 
 option(_WOLF_TRACE "Enable wolf tracing macro" ON)
 
-# option(BUILD_EXAMPLES "Build examples" OFF)
+# option(BUILD_DEMOS "Build examples" OFF)
 set(BUILD_TESTS true)
-set(BUILD_EXAMPLES false)
+set(BUILD_DEMOS false)
 
 # Does this has any other interest
 # but for the examples ?
 # yes, for the tests !
-IF(BUILD_EXAMPLES OR BUILD_TESTS)
+IF(BUILD_DEMOS OR BUILD_TESTS)
   set(_WOLF_ROOT_DIR ${CMAKE_SOURCE_DIR})
-ENDIF(BUILD_EXAMPLES OR BUILD_TESTS)
+ENDIF(BUILD_DEMOS OR BUILD_TESTS)
 
 
 #find dependencies.
@@ -115,57 +115,10 @@ FIND_PACKAGE(Eigen3 3.2.92 REQUIRED)
 
 FIND_PACKAGE(Threads REQUIRED)
 
-FIND_PACKAGE(Ceres QUIET) #Ceres is not required
-IF(Ceres_FOUND)
-    MESSAGE("Ceres Library FOUND: Ceres related sources will be built.")
-ENDIF(Ceres_FOUND)
-
-FIND_PACKAGE(faramotics QUIET) #faramotics is not required
-IF(faramotics_FOUND)
-	FIND_PACKAGE(GLUT REQUIRED)
-	FIND_PACKAGE(pose_state_time REQUIRED)
-  MESSAGE("Faramotics Library FOUND: Faramotics related sources will be built.")
-ENDIF(faramotics_FOUND)
-
-# Cereal
-FIND_PACKAGE(cereal QUIET)
-IF(cereal_FOUND)
-  MESSAGE("cereal Library FOUND: cereal related sources will be built.")
-ENDIF(cereal_FOUND)
-
+FIND_PACKAGE(Ceres REQUIRED) #Ceres is not required
 
 # YAML with yaml-cpp
 FIND_PACKAGE(YamlCpp REQUIRED)
-IF(YAMLCPP_FOUND)
-    MESSAGE("yaml-cpp Library FOUND: yaml-cpp related sources will be built.")
-ELSEIF(YAMLCPP_FOUND)
-    MESSAGE("yaml-cpp Library NOT FOUND!")
-ENDIF(YAMLCPP_FOUND)
-
-#GLOG
-INCLUDE (${PROJECT_SOURCE_DIR}/cmake_modules/FindGlog.cmake)
-IF(GLOG_FOUND)
-    MESSAGE("glog Library FOUND: glog related sources will be built.")
-    MESSAGE(STATUS ${GLOG_INCLUDE_DIR})
-    MESSAGE(STATUS ${GLOG_LIBRARY})
-ELSEIF(GLOG_FOUND)
-    MESSAGE("glog Library NOT FOUND!")
-ENDIF(GLOG_FOUND)
-
-# SuiteSparse doesn't have find*.cmake:
-FIND_PATH(
-    Suitesparse_INCLUDE_DIRS
-    NAMES SuiteSparse_config.h
-    PATHS /usr/include/suitesparse /usr/local/include/suitesparse)
-MESSAGE("Found suitesparse_INCLUDE_DIRS:" ${Suitesparse_INCLUDE_DIRS})
-
-IF(Suitesparse_INCLUDE_DIRS)
-   SET(Suitesparse_FOUND TRUE)
-   MESSAGE("Suitesparse FOUND: wolf_solver will be built.")
-ELSE (Suitesparse_INCLUDE_DIRS)
-   SET(Suitesparse_FOUND FALSE)
-   MESSAGE(FATAL_ERROR "Suitesparse NOT FOUND")
-ENDIF (Suitesparse_INCLUDE_DIRS)
 
 # Define the directory where will be the configured config.h
 SET(WOLF_CONFIG_DIR ${PROJECT_BINARY_DIR}/conf/core/internal)
@@ -184,10 +137,11 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/internal/config.h.in "${WOLF_CONFIG_D
 message("WOLF CONFIG ${WOLF_CONFIG_DIR}/config.h")
 message("CONFIG DIRECTORY ${PROJECT_BINARY_DIR}")
 include_directories("${PROJECT_BINARY_DIR}/conf")
+
 # include spdlog (logging library)
 FIND_PATH(SPDLOG_INCLUDE_DIR spdlog.h /usr/local/include/spdlog /usr/include/spdlog)
 IF (SPDLOG_INCLUDE_DIR)
-  INCLUDE_DIRECTORIES(${SPDLOG_INCLUDE_DIR})
+  # INCLUDE_DIRECTORIES(${SPDLOG_INCLUDE_DIR})
   MESSAGE(STATUS "Found spdlog: ${SPDLOG_INCLUDE_DIR}")
 ELSE (SPDLOG_INCLUDE_DIR)
  MESSAGE(FATAL_ERROR "Could not find spdlog")
@@ -196,32 +150,10 @@ ENDIF (SPDLOG_INCLUDE_DIR)
 INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS})
 INCLUDE_DIRECTORIES("include")
 INCLUDE_DIRECTORIES(${YAMLCPP_INCLUDE_DIR})
-
-IF(Ceres_FOUND)
-    INCLUDE_DIRECTORIES(${CERES_INCLUDE_DIRS})
-ENDIF(Ceres_FOUND)
-
-IF(faramotics_FOUND)
-    INCLUDE_DIRECTORIES(${faramotics_INCLUDE_DIRS})
-ENDIF(faramotics_FOUND)
-
-# cereal
-IF(cereal_FOUND)
-    INCLUDE_DIRECTORIES(${cereal_INCLUDE_DIRS})
-ENDIF(cereal_FOUND)
-
-IF(Suitesparse_FOUND)
-    INCLUDE_DIRECTORIES(${Suitesparse_INCLUDE_DIRS})
-ENDIF(Suitesparse_FOUND)
-
-IF(GLOG_FOUND)
-INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIR})
-ENDIF(GLOG_FOUND)
-
+INCLUDE_DIRECTORIES(${CERES_INCLUDE_DIRS})
 
 #HEADERS
 
-
 SET(HDRS_COMMON
   include/core/common/factory.h
   include/core/common/node_base.h
@@ -513,23 +445,21 @@ IF (Ceres_FOUND)
     TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${CERES_LIBRARIES})
 ENDIF(Ceres_FOUND)
 
-IF (GLOG_FOUND)
-    TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GLOG_LIBRARY})
-ENDIF (GLOG_FOUND)
+# IF (GLOG_FOUND)
+#     TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GLOG_LIBRARY})
+# ENDIF (GLOG_FOUND)
 #check if this is done correctly
 
-IF (GLOG_FOUND)
-    IF(BUILD_TESTS)
-        MESSAGE("Building tests.")
-        add_subdirectory(test)
-    ENDIF(BUILD_TESTS)
-ENDIF (GLOG_FOUND)
+IF(BUILD_TESTS)
+  MESSAGE("Building tests.")
+  add_subdirectory(test)
+ENDIF(BUILD_TESTS)
 
-IF(BUILD_EXAMPLES)
-  #Build examples
+IF(BUILD_DEMOS)
+  #Build demos
   MESSAGE("Building demos.")
   ADD_SUBDIRECTORY(demos)
-ENDIF(BUILD_EXAMPLES)
+ENDIF(BUILD_DEMOS)
 
 
 #install library
diff --git a/PluginsInfo.md b/PluginsInfo.md
index 822109172503bf13012fb4a5b333459f7a1b8e78..9f02720bc1b84b8c3537385a61ba1f5ed531dc13 100644
--- a/PluginsInfo.md
+++ b/PluginsInfo.md
@@ -60,8 +60,8 @@ find_package(wolfvision REQUIRED)
 ```
 if the plugin has been correctly installed, and thus find_package succeeds, then it will define two variables
 
-- ${wolfvision_INCLUDE_DIR} which is the path to the includes. It should have the value `/usr/local/include/iri-algorithms/wolf/plugin_vision`
-- ${wolfvision_LIBRARY} which is the path to the compiled (& linked) library. It should have the value `/usr/local/lib/iri-algorithms/libwolfvision.so`
+- ${wolfvision_INCLUDE_DIRS} which is the path to the includes. It should have the value `/usr/local/include/iri-algorithms/wolf/plugin_vision`
+- ${wolfvision_LIBRARIES} which is the path to the compiled (& linked) library. It should have the value `/usr/local/lib/iri-algorithms/libwolfvision.so`
 
 **IMPORTANT NOTE** For the time being, each plugin is only responsible for finding their own includes and library. This means that for instance wolfvision, which obviously requires
 the _core_ plugin, will not find its own dependencies. It is the responsibility of the programmer to do `find_package(wolf REQUIRED)` to get the includes and library. In the future this will change and each plugin will be responsible for finding all the necessary dependencies.
diff --git a/cmake_modules/wolfConfig.cmake b/cmake_modules/wolfConfig.cmake
index a2393129d3754868845a8c934c6035ba67946695..e7d4a9a499c858f24af7dc8b13120931173bc9ab 100644
--- a/cmake_modules/wolfConfig.cmake
+++ b/cmake_modules/wolfConfig.cmake
@@ -62,4 +62,21 @@ if(NOT wolf_FOUND)
   wolf_report_not_found("Something went wrong while setting up wolf.")
 endif(NOT wolf_FOUND)
 # Set the include directories for wolf (itself).
-set(wolf_FOUND TRUE)
\ No newline at end of file
+set(wolf_FOUND TRUE)
+
+# Now we gather all the required dependencies for Wolf
+
+FIND_PACKAGE(Eigen3 3.2.92 REQUIRED)
+list(APPEND wolf_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
+
+FIND_PACKAGE(Threads REQUIRED)
+list(APPEND wolf_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+
+FIND_PACKAGE(Ceres REQUIRED)
+list(APPEND wolf_INCLUDE_DIRS ${CERES_INCLUDE_DIRS})
+list(APPEND wolf_LIBRARIES ${CERES_LIBRARIES})
+
+# YAML with yaml-cpp
+FIND_PACKAGE(YamlCpp REQUIRED)
+list(APPEND wolf_INCLUDE_DIRS ${YAMLCPP_INCLUDE_DIRS})
+list(APPEND wolf_LIBRARIES ${YAMLCPP_LIBRARY})