diff --git a/homer_map_manager/CMakeLists.txt b/homer_map_manager/CMakeLists.txt
index 741238e265969e5c818f33c5f2571caf9ba7290d..c659d0ab71d24a20af827740223eeada98e16713 100644
--- a/homer_map_manager/CMakeLists.txt
+++ b/homer_map_manager/CMakeLists.txt
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 2.8.3)
 project(homer_map_manager)
 
-find_package(catkin REQUIRED COMPONENTS roscpp roslib tf homer_mapnav_msgs homer_nav_libs cmake_modules homer_tools)
+find_package(catkin REQUIRED COMPONENTS roscpp roslib tf homer_mapnav_msgs homer_nav_libs cmake_modules std_srvs)
 
 find_package( Eigen3 REQUIRED )
 
@@ -24,23 +24,29 @@ set(Managers_SRC
 	src/Managers/RoiManager.cpp
 )
 
-add_library(Managers ${Managers_SRC})
-target_link_libraries(Managers image_io)
-add_dependencies(Managers homer_mapnav_msgs_gencpp)
+add_library(homerManagers ${Managers_SRC})
+target_link_libraries(homerManagers homerImage_io)
+add_dependencies(homerManagers ${catkin_EXPORTED_TARGETS})
 
 
-add_library(image_io
+add_library(homerImage_io
 	src/MapIO/image_loader.cpp
 	src/MapIO/map_saver.cpp
 	src/MapIO/map_loader.cpp
 )
-target_link_libraries(image_io SDL SDL_image yaml-cpp)
-add_dependencies(image_io homer_mapnav_msgs_gencpp)
+target_link_libraries(homerImage_io SDL SDL_image yaml-cpp)
+add_dependencies(homerImage_io ${catkin_EXPORTED_TARGETS})
 
 catkin_package(
 	INCLUDE_DIRS include
 	CATKIN_DEPENDS
 		roscpp
+		roslib
+		tf
+		homer_mapnav_msgs
+		homer_nav_libs
+		std_srvs
+	LIBRARIES homerImage_io homerManagers
 )
 
 add_executable(map_manager src/map_manager_node.cpp)
@@ -48,11 +54,21 @@ add_executable(map_manager src/map_manager_node.cpp)
 target_link_libraries(
 	map_manager
 		${catkin_LIBRARIES}
-		Managers
-		image_io
+		homerManagers
+		homerImage_io
 )
 
 add_dependencies(
 	map_manager
 		${catkin_EXPORTED_TARGETS}
 )
+
+install(DIRECTORY include/${PROJECT_NAME}/
+	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+
+install(TARGETS homerManagers homerImage_io map_manager
+	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
diff --git a/homer_map_manager/include/homer_map_manager/map_manager_node.h b/homer_map_manager/include/homer_map_manager/map_manager_node.h
index 19873a71d68023ff671823e7ee0b81305a59b86f..1346403661d77d4c5dec2746745ec6366eae1c3f 100644
--- a/homer_map_manager/include/homer_map_manager/map_manager_node.h
+++ b/homer_map_manager/include/homer_map_manager/map_manager_node.h
@@ -28,7 +28,6 @@
 
 #include <homer_map_manager/MapIO/map_saver.h>
 #include <homer_map_manager/MapIO/map_loader.h>
-#include <homer_tools/loadRosConfig.h>
 #include <homer_nav_libs/tools.h>
 
 /** @class MapManagerNode
diff --git a/homer_map_manager/package.xml b/homer_map_manager/package.xml
index 2d4deb6857025661763730898605e6e935c0807f..c2e2b2bdc4b1a69f13fe336e30fc5fda33988340 100644
--- a/homer_map_manager/package.xml
+++ b/homer_map_manager/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>homer_map_manager</name>
-  <version>1.0.0</version>
+  <version>0.1.0</version>
   <description>
      map_manager
   </description>
@@ -15,14 +15,23 @@
   <build_depend>tf</build_depend>
   <build_depend>homer_mapnav_msgs</build_depend>
   <build_depend>homer_nav_libs</build_depend>
-  <build_depend>homer_tools</build_depend>
+  <build_depend>cmake_modules</build_depend>
+  <build_depend>eigen</build_depend>
+  <build_depend>sdl</build_depend>
+  <build_depend>sdl-image</build_depend>
+  <build_depend>yaml-cpp</build_depend>
+  <build_depend>std_srvs</build_depend>
   
   <run_depend>roscpp</run_depend>
   <run_depend>roslib</run_depend>
   <run_depend>tf</run_depend>
   <run_depend>homer_mapnav_msgs</run_depend>
   <run_depend>homer_nav_libs</run_depend>
-  <run_depend>homer_tools</run_depend>
+  <run_depend>eigen</run_depend>
+  <run_depend>sdl</run_depend>
+  <run_depend>sdl-image</run_depend>
+  <run_depend>yaml-cpp</run_depend>
+  <run_depend>std_srvs</run_depend>
 
 </package>
 
diff --git a/homer_map_manager/src/map_manager_node.cpp b/homer_map_manager/src/map_manager_node.cpp
index 252e7281bd6713e3085b84a88c914a609aebb75c..59bca4741e4c1462c7f7b7592a12736a7c424924 100644
--- a/homer_map_manager/src/map_manager_node.cpp
+++ b/homer_map_manager/src/map_manager_node.cpp
@@ -7,10 +7,10 @@ MapManagerNode::MapManagerNode(ros::NodeHandle *nh)
 
     int mapSize;
     float resolution;
-    loadConfigValue("/homer_mapping/size", mapSize, (int) 35);
-    loadConfigValue("/homer_mapping/resolution", resolution, (float) 0.05);
-    loadConfigValue("/map_manager/roi_updates", m_roi_polling, (bool) false);
-    loadConfigValue("/map_manager/roi_polling_time", m_roi_polling_time, (float) 0.5);
+	ros::param::param("/homer_mapping/size", mapSize, (int) 35);
+	ros::param::param("/homer_mapping/resolution", resolution, (float) 0.05);
+    ros::param::param("/map_manager/roi_updates", m_roi_polling, (bool) false);
+    ros::param::param("/map_manager/roi_polling_time", m_roi_polling_time, (float) 0.5);
     m_lastROIPoll = ros::Time::now();
     m_MapManager = new MapManager(nh);
     m_POIManager = new PoiManager(nh);
@@ -66,7 +66,7 @@ MapManagerNode::MapManagerNode(ros::NodeHandle *nh)
 
     //load map file from config if present
     std::string mapfile;
-    loadConfigValue("/map_manager/default_mapfile", mapfile);
+	ros::param::get("/map_manager/default_mapfile", mapfile);
     if(mapfile != "")
     {
 		std_msgs::String::Ptr mapfileMsg(new std_msgs::String);
diff --git a/homer_mapnav_msgs/package.xml b/homer_mapnav_msgs/package.xml
index 7c319ec91d3a14fd4b54a47d93e6c508a334d873..536fe91ff3c3eacdf9d3a5fcc5c275b17527c50d 100644
--- a/homer_mapnav_msgs/package.xml
+++ b/homer_mapnav_msgs/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>homer_mapnav_msgs</name>
-  <version>1.0.0</version>
+  <version>0.1.0</version>
   <description> homer_mapnav_msgs contains the messages used for mapping and navigation
   </description>
   <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
diff --git a/homer_mapping/CMakeLists.txt b/homer_mapping/CMakeLists.txt
index c76eaafb84b88a6f3f0e3af882b13fb33b3d7ec5..fee377dbe23c1855cd1eeb04aca4b04917147b73 100644
--- a/homer_mapping/CMakeLists.txt
+++ b/homer_mapping/CMakeLists.txt
@@ -10,14 +10,12 @@ find_package(
 		homer_nav_libs
 		tf
 		roslib
-		homer_tools
 )
 find_package(OpenMP)
 if (OPENMP_FOUND)
     set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
 endif()
-find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED)
 find_package(tf REQUIRED)
 
 set(CMAKE_BUILD_TYPE Release)
@@ -26,7 +24,6 @@ set(CMAKE_BUILD_TYPE Release)
 include_directories(
 	include
 	${catkin_INCLUDE_DIRS}
-	${QT_INCLUDE_DIR}
 )
 
 catkin_package(
@@ -35,20 +32,20 @@ catkin_package(
 		roscpp
 		homer_mapnav_msgs
 		homer_nav_libs
+		nav_msgs
+		tf
+		roslib
+		LIBRARIES homerOccupancyMap homerParticleFilter
 )
 
-include(${QT_USE_FILE})
-add_definitions(${QT_DEFINITIONS})
-
-add_library( OccupancyMap
+add_library(homerOccupancyMap
 	src/OccupancyMap/OccupancyMap.cpp
 	
 )
 
 target_link_libraries(
-	OccupancyMap
+	homerOccupancyMap
 		${catkin_LIBRARIES}
-		${QT_LIBRARIES}
 		${tf_LIBRARIES}
 )
 set(
@@ -60,12 +57,12 @@ set(
 )
 
 add_library(
-	ParticleFilter
+	homerParticleFilter
 		${ParticleFilter_SRC}
 )
 
 target_link_libraries(
-	ParticleFilter
+	homerParticleFilter
 		${catkin_LIBRARIES}
 )
 
@@ -74,11 +71,21 @@ add_executable(homer_mapping src/slam_node.cpp)
 target_link_libraries(
 	homer_mapping
 		${catkin_LIBRARIES}
-		ParticleFilter
-		OccupancyMap
+		homerParticleFilter
+		homerOccupancyMap
 )
 
 add_dependencies(
 	homer_mapping
 		${catkin_EXPORTED_TARGETS}
 )
+
+install(DIRECTORY include/${PROJECT_NAME}/
+	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+
+install(TARGETS homerOccupancyMap homerParticleFilter homer_mapping
+	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h b/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h
index e12e13fcda5eab612168b6aebe456ced274c15bf..a712fb390b06c70a7a311674f4ca6492fdb32a6e 100644
--- a/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h
+++ b/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h
@@ -11,8 +11,6 @@
 #include <homer_nav_libs/Math/Transformation2D.h>
 #include <homer_nav_libs/Math/Math.h>
 
-#include <homer_tools/loadRosConfig.h>
-
 #include <tf/transform_broadcaster.h>
 
 #include <cmath>
diff --git a/homer_mapping/include/homer_mapping/slam_node.h b/homer_mapping/include/homer_mapping/slam_node.h
index 1505c91644ca56605fb3ff1bf9e2410e46d14c5a..5e4081a4a76ad6282cdbf92b55cbe2d40260fdec 100644
--- a/homer_mapping/include/homer_mapping/slam_node.h
+++ b/homer_mapping/include/homer_mapping/slam_node.h
@@ -27,8 +27,6 @@
 #include <nav_msgs/OccupancyGrid.h>
 #include <tf/tf.h>
 
-#include <homer_tools/loadRosConfig.h>
-
 #include <homer_mapping/ParticleFilter/SlamFilter.h>
 #include <homer_mapping/ParticleFilter/HyperSlamFilter.h>
 #include <homer_nav_libs/Math/Box2D.h>
diff --git a/homer_mapping/package.xml b/homer_mapping/package.xml
index ddc937338cb82fc635ec749fcb1a7bf2ae012c8d..aca809027328e2e9f94b3ff3687a24a454f73d67 100644
--- a/homer_mapping/package.xml
+++ b/homer_mapping/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>homer_mapping</name>
-  <version>1.0.0</version>
+  <version>0.1.0</version>
   <description>
 
      homer_mapping
@@ -18,9 +18,8 @@
   <build_depend>tf</build_depend>
   <build_depend>roslib</build_depend>
   <build_depend>homer_nav_libs</build_depend>
-
   <build_depend>homer_mapnav_msgs</build_depend>
-  <build_depend>homer_tools</build_depend>
+  <build_depend>cmake_modules</build_depend>
  
 
   <run_depend>std_msgs</run_depend>
@@ -30,7 +29,6 @@
   <run_depend>tf</run_depend>
   <run_depend>roslib</run_depend>  
   <run_depend>homer_nav_libs</run_depend>
-
   <run_depend>homer_mapnav_msgs</run_depend>
-  <run_depend>homer_tools</run_depend>
+
 </package>
diff --git a/homer_mapping/src/OccupancyMap/OccupancyMap.cpp b/homer_mapping/src/OccupancyMap/OccupancyMap.cpp
index d6359f24b64dcc7658d8f3a796facebf83da6acb..5ab3b94abed4e9300c1a11f610ba049548303356 100644
--- a/homer_mapping/src/OccupancyMap/OccupancyMap.cpp
+++ b/homer_mapping/src/OccupancyMap/OccupancyMap.cpp
@@ -14,7 +14,6 @@
 #include <tf/transform_listener.h>
 
 #include <homer_mapnav_msgs/ModifyMap.h>
-#include <homer_tools/loadRosConfig.h>
 #include <homer_nav_libs/tools.h>
 
 //uncomment this to get extended information on the tracer
@@ -91,9 +90,9 @@ OccupancyMap::~OccupancyMap()
 void OccupancyMap::initMembers()
 {
   float mapSize;
-  loadConfigValue("/homer_mapping/size", mapSize);
-  loadConfigValue("/homer_mapping/resolution", m_Resolution);
-  loadConfigValue("/homer_mapping/max_laser", m_LaserMaxRange, (float) 8.0);
+  ros::param::get("/homer_mapping/size", mapSize);
+  ros::param::get("/homer_mapping/resolution", m_Resolution);
+  ros::param::param("/homer_mapping/max_laser", m_LaserMaxRange, (float) 8.0);
 
   //add one safety pixel
   m_PixelSize = mapSize / m_Resolution + 1;
@@ -106,10 +105,10 @@ void OccupancyMap::initMembers()
   m_Origin.orientation.y = 0.0;
   m_Origin.orientation.z = 0.0;
 
-  loadConfigValue("/homer_mapping/backside_checking", m_BacksideChecking);
-  loadConfigValue("/homer_mapping/obstacle_borders", m_ObstacleBorders);
-  loadConfigValue("/homer_mapping/measure_sampling_step", m_MeasureSamplingStep);
-  loadConfigValue("/homer_mapping/laser_scanner/free_reading_distance", m_FreeReadingDistance);
+  ros::param::get("/homer_mapping/backside_checking", m_BacksideChecking);
+  ros::param::get("/homer_mapping/obstacle_borders", m_ObstacleBorders);
+  ros::param::get("/homer_mapping/measure_sampling_step", m_MeasureSamplingStep);
+  ros::param::get("/homer_mapping/laser_scanner/free_reading_distance", m_FreeReadingDistance);
 
   m_OccupancyProbability = new float[m_ByteSize];
   m_MeasurementCount = new unsigned short[m_ByteSize];
@@ -158,7 +157,7 @@ OccupancyMap& OccupancyMap::operator= ( const OccupancyMap & occupancyMap )
   m_PixelSize = occupancyMap.m_PixelSize;
   m_ByteSize = occupancyMap.m_ByteSize;
 
-  loadConfigValue("/homer_mapping/backside_checking", m_BacksideChecking);
+  ros::param::get("/homer_mapping/backside_checking", m_BacksideChecking);
 
   // re-allocate all arrays
   m_OccupancyProbability = new float[m_ByteSize];
diff --git a/homer_mapping/src/ParticleFilter/SlamFilter.cpp b/homer_mapping/src/ParticleFilter/SlamFilter.cpp
index 33c280494170e39dbeee4f2ba53a9d2f3e3a0ac2..628ae187df2b2ea8d1bb131a3ac8c12083de87b6 100644
--- a/homer_mapping/src/ParticleFilter/SlamFilter.cpp
+++ b/homer_mapping/src/ParticleFilter/SlamFilter.cpp
@@ -20,23 +20,23 @@ SlamFilter::SlamFilter ( int particleNum ) : ParticleFilter<SlamParticle> ( part
   }
 
   float rotationErrorRotating = 0.0;
-  loadConfigValue("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating);
+  ros::param::get("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating);
   float rotationErrorTranslating = 0.0;
-  loadConfigValue("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating);
+  ros::param::get("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating);
   float translationErrorTranslating = 0.0;
-  loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorTranslating);
+  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorTranslating);
   float translationErrorRotating = 0.0;
-  loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorRotating);
+  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorRotating);
   float moveJitterWhileTurning = 0.0;
-  loadConfigValue("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning);
-  loadConfigValue("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond);
+  ros::param::get("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning);
+  ros::param::get("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond);
 
   int updateMinMoveAngleDegrees;
-  loadConfigValue("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees);
+  ros::param::get("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees);
   m_UpdateMinMoveAngle = Math::deg2Rad(updateMinMoveAngleDegrees);
-  loadConfigValue("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance);
+  ros::param::get("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance);
   double maxUpdateInterval;
-  loadConfigValue("/particlefilter/max_update_interval", maxUpdateInterval);
+  ros::param::get("/particlefilter/max_update_interval", maxUpdateInterval);
   m_MaxUpdateInterval = ros::Duration(maxUpdateInterval);
 
   setRotationErrorRotating ( rotationErrorRotating );
@@ -77,23 +77,23 @@ SlamFilter::SlamFilter ( SlamFilter& slamFilter ) : ParticleFilter<SlamParticle>
   }
 
   float rotationErrorRotating = 0.0;
-  loadConfigValue("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating);
+  ros::param::get("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating);
   float rotationErrorTranslating = 0.0;
-  loadConfigValue("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating);
+  ros::param::get("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating);
   float translationErrorTranslating = 0.0;
-  loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorTranslating);
+  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorTranslating);
   float translationErrorRotating = 0.0;
-  loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorRotating);
+  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorRotating);
   float moveJitterWhileTurning = 0.0;
-  loadConfigValue("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning);
-  loadConfigValue("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond);
+  ros::param::get("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning);
+  ros::param::get("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond);
 
   int updateMinMoveAngleDegrees;
-  loadConfigValue("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees);
+  ros::param::get("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees);
   m_UpdateMinMoveAngle = Math::deg2Rad(updateMinMoveAngleDegrees);
-  loadConfigValue("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance);
+  ros::param::get("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance);
   double maxUpdateInterval;
-  loadConfigValue("/particlefilter/max_update_interval", maxUpdateInterval);
+  ros::param::get("/particlefilter/max_update_interval", maxUpdateInterval);
   m_MaxUpdateInterval = ros::Duration(maxUpdateInterval);
 
   setRotationErrorRotating ( rotationErrorRotating );
diff --git a/homer_mapping/src/slam_node.cpp b/homer_mapping/src/slam_node.cpp
index 9b906130f34db04ea4480cc6f5c79d4be8605dba..c80692b22b0c147b9c4fbad1a0407681a3589ff4 100644
--- a/homer_mapping/src/slam_node.cpp
+++ b/homer_mapping/src/slam_node.cpp
@@ -44,17 +44,17 @@ SlamNode::SlamNode(ros::NodeHandle* nh)
 void SlamNode::init()
 {
     double waitTime;
-    loadConfigValue("/particlefilter/wait_time", waitTime);
+	ros::param::get("/particlefilter/wait_time", waitTime);
     m_WaitDuration = ros::Duration(waitTime);
-    loadConfigValue("/selflocalization/scatter_var_xy", m_ScatterVarXY);
-    loadConfigValue("/selflocalization/scatter_var_theta", m_ScatterVarTheta);
+	ros::param::get("/selflocalization/scatter_var_xy", m_ScatterVarXY);
+	ros::param::get("/selflocalization/scatter_var_theta", m_ScatterVarTheta);
 
     m_DoMapping = true;
 
     int particleNum;
-    loadConfigValue("/particlefilter/particle_num", particleNum);
+	ros::param::get("/particlefilter/particle_num", particleNum);
     int particleFilterNum;
-    loadConfigValue("/particlefilter/hyper_slamfilter/particlefilter_num", particleFilterNum);
+	ros::param::get("/particlefilter/hyper_slamfilter/particlefilter_num", particleFilterNum);
     m_HyperSlamFilter = new HyperSlamFilter ( particleFilterNum, particleNum );
 
     m_ReferenceOdometryTime = ros::Time(0);
diff --git a/homer_nav_libs/CMakeLists.txt b/homer_nav_libs/CMakeLists.txt
index bc5efcbdee0285fcb90016c8c8015e9648c43ada..c368217131a707cfd9ab2e79a104523cbea855d1 100644
--- a/homer_nav_libs/CMakeLists.txt
+++ b/homer_nav_libs/CMakeLists.txt
@@ -32,3 +32,13 @@ add_library(homerMappingMath
 	src/Math/Math.cpp
 	src/Math/Point2D.cpp
 )
+
+install(DIRECTORY include/${PROJECT_NAME}/
+	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+
+install(TARGETS homerExplorer homerMappingMath
+	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
diff --git a/homer_nav_libs/package.xml b/homer_nav_libs/package.xml
index 117158f9d71a6c33c58212db1d2ec5d69010600d..ab43684c6615fe0d0c149b7893ea9d605c1b055e 100644
--- a/homer_nav_libs/package.xml
+++ b/homer_nav_libs/package.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <package>
   <name>homer_nav_libs</name>
-  <version>1.0.0</version>
+  <version>0.1.0</version>
   <description>The nav_libs package</description>
 
   <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
@@ -12,8 +12,12 @@
   <build_depend>geometry_msgs</build_depend>
   <build_depend>roscpp</build_depend>
   <build_depend>tf</build_depend>
+  <build_depend>cmake_modules</build_depend>
+  <build_depend>eigen</build_depend>
+
   <run_depend>roscpp</run_depend>
   <run_depend>geometry_msgs</run_depend>
   <run_depend>tf</run_depend>
+  <run_depend>eigen</run_depend>
 
 </package>
diff --git a/homer_nav_libs/src/SpeedControl/SpeedControl.cpp b/homer_nav_libs/src/SpeedControl/SpeedControl.cpp
index ddb72a945d81ddbc10f1c5efe00b5c8e37555d39..c939197e0c3cf63ad6142b350b711ee7210e8e68 100644
--- a/homer_nav_libs/src/SpeedControl/SpeedControl.cpp
+++ b/homer_nav_libs/src/SpeedControl/SpeedControl.cpp
@@ -38,10 +38,10 @@ namespace {
   inline Eigen::AlignedBox2f loadRect(const string& path)
   {
     pair<float, float> pX, pY;
-    loadConfigValue(path + "/x_min", pX.first);
-    loadConfigValue(path + "/x_max", pX.second);
-    loadConfigValue(path + "/y_min", pY.first);
-    loadConfigValue(path + "/y_max", pY.second);
+	ros::param::get(path + "/x_min", pX.first);
+	ros::param::get(path + "/x_max", pX.second);
+	ros::param::get(path + "/y_min", pY.first);
+	ros::param::get(path + "/y_max", pY.second);
 
     Eigen::Vector2f first(pX.first, pY.first), second(pX.second, pY.second);
     return Eigen::AlignedBox2f(first, second);
@@ -52,10 +52,10 @@ void SpeedControl::loadDimensions()
 {
   InnerDangerZone = loadRect("/homer_navigation/speed_control/inner_danger_zone");
   InnerDangerZoneFactor;
-  loadConfigValue("/homer_navigation/speed_control/inner_danger_zone/speed_factor", InnerDangerZoneFactor);
+  ros::param::get("/homer_navigation/speed_control/inner_danger_zone/speed_factor", InnerDangerZoneFactor);
   OuterDangerZone = loadRect("/homer_navigation/speed_control/inner_danger_zone");
   OuterDangerZoneFactor;
-  loadConfigValue("/homer_navigation/speed_control/outer_danger_zone/speed_factor", OuterDangerZoneFactor);
+  ros::param::get("/homer_navigation/speed_control/outer_danger_zone/speed_factor", OuterDangerZoneFactor);
   if(!OuterDangerZone.contains(InnerDangerZone))
     ROS_WARN_STREAM("InnerDangerZone is not contained in OuterDangerZone");
 }
diff --git a/homer_navigation/CMakeLists.txt b/homer_navigation/CMakeLists.txt
index 98245afb8d96f627caafe69727ed45a85218393b..94d0330758a5587db154479761e9d08fe3ee6a42 100644
--- a/homer_navigation/CMakeLists.txt
+++ b/homer_navigation/CMakeLists.txt
@@ -5,14 +5,12 @@ find_package(catkin REQUIRED COMPONENTS
   roscpp
   roslib
   homer_robbie_architecture
-  homer_robot_platform
   nav_msgs
   sensor_msgs
   homer_mapnav_msgs
   homer_nav_libs
   tf
   cmake_modules
-  homer_tools
 )
 
 find_package(Eigen3 REQUIRED)
@@ -21,6 +19,15 @@ set(CMAKE_BUILD_TYPE Release)
 
 catkin_package(
   INCLUDE_DIRS include
+  CATKIN_DEPENDS
+  	roscpp
+	roslib
+	homer_robbie_architecture
+	nav_msgs
+	sensor_msgs
+	homer_mapnav_msgs
+	homer_nav_libs
+	tf
 )
 
 include_directories(
@@ -36,3 +43,13 @@ target_link_libraries(homer_navigation
    ${catkin_LIBRARIES}
    ${EIGEN3_LIBRARIES}
  )
+
+install(DIRECTORY include/${PROJECT_NAME}/
+	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+)
+
+install(TARGETS homer_navigation
+	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
diff --git a/homer_navigation/include/homer_navigation/homer_navigation_node.h b/homer_navigation/include/homer_navigation/homer_navigation_node.h
index cc3b4391c0e094b5964f5f42f7c3780b0e1b1ac9..a273994b08baa58b6c89c1369f94c5754e144515 100644
--- a/homer_navigation/include/homer_navigation/homer_navigation_node.h
+++ b/homer_navigation/include/homer_navigation/homer_navigation_node.h
@@ -30,9 +30,6 @@
 #include <homer_ptu_msgs/CenterWorldPoint.h>
 #include <homer_ptu_msgs/SetPanTilt.h>
 
-#include <homer_tools/loadRosConfig.h>
-
-//nav_libs
 #include <homer_nav_libs/tools.h>
 #include <homer_nav_libs/Explorer/Explorer.h>
 
diff --git a/homer_navigation/package.xml b/homer_navigation/package.xml
index ef223ca015bf0bc02b33084e0d5369c287722257..3515cfb78a01a788a847a8632dfb59f81204cfb5 100644
--- a/homer_navigation/package.xml
+++ b/homer_navigation/package.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <package>
   <name>homer_navigation</name>
-  <version>1.0.0</version>
+  <version>0.1.0</version>
   <description>The homer_navigation package</description>
 
   <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
@@ -13,26 +13,24 @@
   
   <build_depend>roscpp</build_depend>
   <build_depend>roslib</build_depend>
-  <build_depend>robbie_architecture</build_depend>
-  <build_depend>robot_platform</build_depend>
-  <build_depend>nav_libs</build_depend>
+  <build_depend>homer_robbie_architecture</build_depend>
+  <build_depend>homer_nav_libs</build_depend>
   <build_depend>nav_msgs</build_depend>
   <build_depend>sensor_msgs</build_depend>
-  <build_depend>mapnav_msgs</build_depend>
+  <build_depend>homer_mapnav_msgs</build_depend>
   <build_depend>std_msgs</build_depend>
   <build_depend>tf</build_depend>
-  <build_depend>homer_tools</build_depend>
+  <build_depend>cmake_modules</build_depend>
+  <build_depend>eigen</build_depend>
   
   <run_depend>roscpp</run_depend>
   <run_depend>roslib</run_depend>
-  <run_depend>robbie_architecture</run_depend>
-  <run_depend>robot_platform</run_depend>
-  <run_depend>nav_libs</run_depend>
+  <run_depend>homer_robbie_architecture</run_depend>
+  <run_depend>homer_nav_libs</run_depend>
   <run_depend>nav_msgs</run_depend>
   <run_depend>sensor_msgs</run_depend>
-  <run_depend>mapnav_msgs</run_depend>
+  <run_depend>homer_mapnav_msgs</run_depend>
   <run_depend>std_msgs</run_depend>
   <run_depend>tf</run_depend>
-  <run_depend>homer_tools</run_depend>
 
 </package>
diff --git a/homer_navigation/src/homer_navigation_node.cpp b/homer_navigation/src/homer_navigation_node.cpp
index 5e58c99021646d409b248cc87d1dfb63484a9013..9bad6a762fae86b98ca6c09892e27c66758838fd 100644
--- a/homer_navigation/src/homer_navigation_node.cpp
+++ b/homer_navigation/src/homer_navigation_node.cpp
@@ -41,52 +41,52 @@ HomerNavigationNode::HomerNavigationNode()
 void HomerNavigationNode::loadParameters()
 {
 	//Explorer constructor 
-	loadConfigValue("/homer_mapping/resolution", 						m_resolution, (double) 0.05);
-	loadConfigValue("/homer_navigation/allowed_obstacle_distance/min", 	m_AllowedObstacleDistance.first, (float) 0.3);
-	loadConfigValue("/homer_navigation/allowed_obstacle_distance/max", 	m_AllowedObstacleDistance.second, (float) 5.0);
-	loadConfigValue("/homer_navigation/safe_obstacle_distance/min", 	m_SafeObstacleDistance.first, (float) 0.7);
-	loadConfigValue("/homer_navigation/safe_obstacle_distance/max", 	m_SafeObstacleDistance.second, (float) 1.5);
-	loadConfigValue("/homer_navigation/frontier_safeness_factor", 		m_FrontierSafenessFactor, (float) 1.4);
-	loadConfigValue("/homer_navigation/safe_path_weight", 				m_SafePathWeight, (double) 1.2);
-	loadConfigValue("/homer_navigation/waypoint_sampling_threshold", 	m_waypoint_sampling_threshold, (float) 1.5);    
+	ros::param::param("/homer_mapping/resolution", 						m_resolution, (double) 0.05);
+	ros::param::param("/homer_navigation/allowed_obstacle_distance/min", 	m_AllowedObstacleDistance.first, (float) 0.3);
+	ros::param::param("/homer_navigation/allowed_obstacle_distance/max", 	m_AllowedObstacleDistance.second, (float) 5.0);
+	ros::param::param("/homer_navigation/safe_obstacle_distance/min", 	m_SafeObstacleDistance.first, (float) 0.7);
+	ros::param::param("/homer_navigation/safe_obstacle_distance/max", 	m_SafeObstacleDistance.second, (float) 1.5);
+	ros::param::param("/homer_navigation/frontier_safeness_factor", 		m_FrontierSafenessFactor, (float) 1.4);
+	ros::param::param("/homer_navigation/safe_path_weight", 				m_SafePathWeight, (double) 1.2);
+	ros::param::param("/homer_navigation/waypoint_sampling_threshold", 	m_waypoint_sampling_threshold, (float) 1.5);    
 	m_AllowedObstacleDistance.first 	/= m_resolution;
 	m_AllowedObstacleDistance.second	/= m_resolution;
 	m_SafeObstacleDistance.first 		/= m_resolution;
 	m_SafeObstacleDistance.second 		/= m_resolution;
 
 	//check path 
-	loadConfigValue("/homer_navigation/check_path", 					m_check_path, (bool) true);
-	loadConfigValue("/homer_navigation/check_path_max_distance", 		m_check_path_max_distance, (float) 2.0);
+	ros::param::param("/homer_navigation/check_path", 					m_check_path, (bool) true);
+	ros::param::param("/homer_navigation/check_path_max_distance", 		m_check_path_max_distance, (float) 2.0);
 
 	//collision 
-	loadConfigValue("/homer_navigation/collision_distance", 			m_collision_distance, (float) 0.3);
-	loadConfigValue("/homer_navigation/collision_distance_near_target", m_collision_distance_near_target, (float) 0.2);
-	loadConfigValue("/homer_navigation/backward_collision_distance", 	m_backward_collision_distance, (float) 0.5);
+	ros::param::param("/homer_navigation/collision_distance", 			m_collision_distance, (float) 0.3);
+	ros::param::param("/homer_navigation/collision_distance_near_target", m_collision_distance_near_target, (float) 0.2);
+	ros::param::param("/homer_navigation/backward_collision_distance", 	m_backward_collision_distance, (float) 0.5);
 
 	//cmd_vel config values
-	loadConfigValue("/homer_navigation/min_turn_angle", 				m_min_turn_angle, (float) 0.15);
-	loadConfigValue("/homer_navigation/max_turn_speed", 				m_max_turn_speed, (float) 0.6);
-	loadConfigValue("/homer_navigation/min_turn_speed",					m_min_turn_speed, (float) 0.3);
-	loadConfigValue("/homer_navigation/max_move_speed", 				m_max_move_speed, (float) 0.4);
-	loadConfigValue("/homer_navigation/max_drive_angle",				m_max_drive_angle, (float) 0.6);
+	ros::param::param("/homer_navigation/min_turn_angle", 				m_min_turn_angle, (float) 0.15);
+	ros::param::param("/homer_navigation/max_turn_speed", 				m_max_turn_speed, (float) 0.6);
+	ros::param::param("/homer_navigation/min_turn_speed",					m_min_turn_speed, (float) 0.3);
+	ros::param::param("/homer_navigation/max_move_speed", 				m_max_move_speed, (float) 0.4);
+	ros::param::param("/homer_navigation/max_drive_angle",				m_max_drive_angle, (float) 0.6);
 
 	//caution factors
-	loadConfigValue("/homer_navigation/map_speed_factor", 				m_map_speed_factor, (float) 1.0);	
-	loadConfigValue("/homer_navigation/waypoint_speed_factor", 			m_waypoint_speed_factor, (float) 1.0);	
-	loadConfigValue("/homer_navigation/obstacle_speed_factor", 			m_obstacle_speed_factor, (float) 1.0);	
-	loadConfigValue("/homer_navigation/target_distance_speed_factor", 	m_target_distance_speed_factor, (float) 0.4);	
+	ros::param::param("/homer_navigation/map_speed_factor", 				m_map_speed_factor, (float) 1.0);	
+	ros::param::param("/homer_navigation/waypoint_speed_factor", 			m_waypoint_speed_factor, (float) 1.0);	
+	ros::param::param("/homer_navigation/obstacle_speed_factor", 			m_obstacle_speed_factor, (float) 1.0);	
+	ros::param::param("/homer_navigation/target_distance_speed_factor", 	m_target_distance_speed_factor, (float) 0.4);	
 
 	//robot dimensions
-	loadConfigValue("/homer_navigation/min_x", 							m_min_x, (float) 0.3);
-	loadConfigValue("/homer_navigation/min_y",							m_min_y, (float) 0.27);
+	ros::param::param("/homer_navigation/min_x", 							m_min_x, (float) 0.3);
+	ros::param::param("/homer_navigation/min_y",							m_min_y, (float) 0.27);
 
 	//error durations
-	loadConfigValue("/homer_navigation/callback_error_duration", 		m_callback_error_duration, (float) 0.3);
+	ros::param::param("/homer_navigation/callback_error_duration", 		m_callback_error_duration, (float) 0.3);
 
-	loadConfigValue("/homer_navigation/use_ptu",						m_use_ptu, (bool) false);
+	ros::param::param("/homer_navigation/use_ptu",						m_use_ptu, (bool) false);
 
-	loadConfigValue("/homer_navigation/unknown_threshold", 				m_unknown_threshold, (int) 50);
-	loadConfigValue("/homer_navigation/waypoint_radius_factor",			m_waypoint_radius_factor, (float) 0.25);
+	ros::param::param("/homer_navigation/unknown_threshold", 				m_unknown_threshold, (int) 50);
+	ros::param::param("/homer_navigation/waypoint_radius_factor",			m_waypoint_radius_factor, (float) 0.25);
 }
 
 void HomerNavigationNode::init()