diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3c39d7d94d8cd9b74eceed34b75b5460d170145f..5d062ba7356d4c5030eda0e5f3a7a74b1088a8d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -124,10 +124,7 @@ include_directories(${iriutils_INCLUDE_DIR})
 # Module
 add_library(${module_name}
   src/adc_nav_module.cpp
-  src/nav_costmap_module.cpp
-  src/nav_planner_module.cpp
-  src/ackermann_lp_module.cpp
-  src/opendrive_gp_module.cpp
+  src/nav_module.cpp
 )
 
 target_link_libraries(${module_name} ${catkin_LIBRARIES})
@@ -153,11 +150,11 @@ add_dependencies(${client_name} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${module_nam
 add_dependencies(${client_name} ${adc_nav_client_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
 
 #BT_module
-add_library(${module_bt_name} src/adc_nav_bt_module.cpp)
-target_link_libraries(${module_bt_name} ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_LIB_DESTINATION}/lib${module_name}.so)
-target_link_libraries(${module_bt_name} ${catkin_LIBRARIES})
-target_link_libraries(${module_bt_name} ${iriutils_LIBRARIES})
-add_dependencies(${module_bt_name} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS} ${module_name})
+#add_library(${module_bt_name} src/adc_nav_bt_module.cpp)
+#target_link_libraries(${module_bt_name} ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_LIB_DESTINATION}/lib${module_name}.so)
+#target_link_libraries(${module_bt_name} ${catkin_LIBRARIES})
+#target_link_libraries(${module_bt_name} ${iriutils_LIBRARIES})
+#add_dependencies(${module_bt_name} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS} ${module_name})
 
 #BT_client
 #set(bt_client_name adc_nav_bt_client)
diff --git a/include/adc_nav_module/ackermann_lp_module.h b/include/adc_nav_module/ackermann_lp_module.h
index 61821761fa03ad5e440378bd3fe71076b89ec4dc..6d79e29ba73a7a35f48f2df38662f1fe90c13260 100644
--- a/include/adc_nav_module/ackermann_lp_module.h
+++ b/include/adc_nav_module/ackermann_lp_module.h
@@ -11,7 +11,6 @@
   */
 template <class ModuleCfg>
 class CAckermannLPModule : public CNavPlannerModule<ModuleCfg>
-
 {
   public:
     /**
@@ -287,4 +286,329 @@ class CAckermannLPModule : public CNavPlannerModule<ModuleCfg>
     ~CAckermannLPModule();
   };
 
+  template <class ModuleCfg>
+  CAckermannLPModule<ModuleCfg>::CAckermannLPModule(const std::string &name,const std::string &name_space) : CNavPlannerModule<ModuleCfg>(name,name_space)
+  {
+
+  }
+
+  /* parameter functions */
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::using_steer_angle(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::use_steer_angle(bool steer_angle)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::pruning_plan(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::prune_plan(bool enable)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::using_dead_zone(void)
+  {
+
+  }
+ 
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::use_dead_zone(bool enable, double dead_zone)
+  { 
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_trans_vel_samples(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_trans_vel_samples(unsigned int samples)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_steer_angle_samples(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_steer_angle_samples(unsigned int samples)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_angular_el_samples(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_angular_vel_samples(unsigned int samples)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_cmd_vel_average_samples(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_cmd_vel_average_samples(unsigned int samples)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_odom_average_samples(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_odom_average_samples(unsigned int samples)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_heading_cost_points(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_heading_cost_points(unsigned int points)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_simulation_time(double &min,double &max)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_simulation_time(double &min,double &max)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_simulation_res(double &linear, double &angular)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_simulation_res(double &linear, double &angular)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_path_distance_cost(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_path_distance_cost(double cost)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_goal_distance_cost(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_goal_distance_cost(double cost)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_obstacle_cost(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_obstacle_cost(double cost)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_heading_cost(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_heading_cost(double cost)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_goal_tolerances(double &xy,double &yaw)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_goal_tolerances(double &xy,double &yaw)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_linear_velocity_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_linear_velocity_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_angular_velocity_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_angular_velocity_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_linear_max_accel(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_linear_max_accel(double max)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_angular_max_accel(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_angular_max_accel(double max)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_steer_angle_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_steer_angle_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_steer_velocity_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_steer_velocity_range(double &max,double &min)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_min_segment_length(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_min_segment_length(double min_lenght)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_axis_distance(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_axis_distance(double distance)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_wheel_distance(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_wheel_distance(double distance)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_wheel_radius(void)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_wheel_radius(double radius)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  CAckermannLPModule<ModuleCfg>::~CAckermannLPModule()
+  {
+
+  }
+
   #endif
diff --git a/include/adc_nav_module/nav_costmap_module.h b/include/adc_nav_module/nav_costmap_module.h
index ffca2046af52dfaa5a9e390c017b7775cb8cda76..10b4a59f4b8f1ca46a8ef15f3e01fca01840b595 100644
--- a/include/adc_nav_module/nav_costmap_module.h
+++ b/include/adc_nav_module/nav_costmap_module.h
@@ -126,4 +126,124 @@ class CNavCostmapModule
     ~CNavCostmapModule();
   };
 
+template <class ModuleCfg>
+CNavCostmapModule<ModuleCfg>::CNavCostmapModule(const std::string &name,const std::string &name_space) : costmap_reconf(name,name_space)
+{
+
+}
+
+template <class ModuleCfg>
+unsigned int CNavCostmapModule<ModuleCfg>::get_width(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_width(unsigned int width)
+{
+
+}
+
+template <class ModuleCfg>
+unsigned int CNavCostmapModule<ModuleCfg>::get_height(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_height(unsigned int height)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::get_footprint(std::vector<geometry_msgs::Point> &footprint)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_footprint(std::vector<geometry_msgs::Point> &footprint)
+{
+
+}
+
+template <class ModuleCfg>
+double CNavCostmapModule<ModuleCfg>::get_transform_tolerance(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_transform_tolerance(double tol)
+{
+
+}
+
+template <class ModuleCfg>
+double CNavCostmapModule<ModuleCfg>::get_update_frequency(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_update_frequency(double freq)
+{
+
+}
+
+template <class ModuleCfg>
+double CNavCostmapModule<ModuleCfg>::get_publish_frequency(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_publish_frequency(double freq)
+{
+
+}
+
+template <class ModuleCfg>
+double CNavCostmapModule<ModuleCfg>::get_resolution(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_resolution(double res)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::get_origin(double &x,double &y)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_origin(double &x,double &y)
+{
+
+}
+
+template <class ModuleCfg>
+double CNavCostmapModule<ModuleCfg>::get_footprint_padding(void)
+{
+
+}
+
+template <class ModuleCfg>
+void CNavCostmapModule<ModuleCfg>::set_footprint_padding(double pad)
+{
+
+}
+
+template <class ModuleCfg>
+CNavCostmapModule<ModuleCfg>::~CNavCostmapModule()
+{
+
+}
+
   #endif
diff --git a/include/adc_nav_module/nav_planner_module.h b/include/adc_nav_module/nav_planner_module.h
index 5748309742cddae82ba8ae2416a4a7eca740fc71..f77b57798f073701fadf1e1d970da929ec2a62bd 100644
--- a/include/adc_nav_module/nav_planner_module.h
+++ b/include/adc_nav_module/nav_planner_module.h
@@ -34,4 +34,16 @@ class CNavPlannerModule
     ~CNavPlannerModule();
   };
 
+  template <class ModuleCfg>
+  CNavPlannerModule<ModuleCfg>::CNavPlannerModule(const std::string &name,const std::string &name_space) : planner_reconf(name,name_space)
+  {
+
+  }
+
+  template <class ModuleCfg>
+  CNavPlannerModule<ModuleCfg>::~CNavPlannerModule()
+  {
+
+  }
+
   #endif
diff --git a/include/adc_nav_module/opendrive_gp_module.h b/include/adc_nav_module/opendrive_gp_module.h
index 84033b05319a3e3ec1958d4d7c987878d6547931..abccf5230d4ceeb8da0983339563b4c997de9ccf 100644
--- a/include/adc_nav_module/opendrive_gp_module.h
+++ b/include/adc_nav_module/opendrive_gp_module.h
@@ -13,7 +13,6 @@ typedef enum {OD_GP_DIST_COST=0,OD_GP_TIME_COST=1} cost_type_t;
   */
 template <class ModuleCfg>
 class COpendriveGPModule : public CNavPlannerModule<ModuleCfg>
-
 {
   public:
     /**
@@ -22,24 +21,24 @@ class COpendriveGPModule : public CNavPlannerModule<ModuleCfg>
       */
     COpendriveGPModule(const std::string &name,const std::string &name_space=std::string(""));
     /* parameter functions */
-    bool multi_hypothesis(void);
-    void multy_hypothesis(bool enable);
-    cost_type_t get_cost_type(void);
-    void set_cost_type(cost_type_t type);
-    std::string get_opendrive_map(void);
-    void set_opendrive_map(const std::string &map_file);
-    std::string get_opendrive_frame(void);
-    void get_popendrive_frame(const std::string &frame);
-    double get_distance_tolerance(void);
-    void set_distance_tolerance(double tolerance);
-    double get_angle_tolerance(void);
-    void set_angle_tolerance(double tolerance);
-    double get_resolution(void);
-    void set_resolution(double resolution);
-    double get_scale_factor(void);
-    void set_scale_factor(double scale);
-    double get_min_road_length(void);
-    void set_min_raod_length(double length);
+    dyn_reconf_status_t is_multi_hypothesis(bool &enable);
+    dyn_reconf_status_t multy_hypothesis(bool enable);
+    dyn_reconf_status_t get_cost_type(cost_type_t &type);
+    dyn_reconf_status_t set_cost_type(cost_type_t type);
+    dyn_reconf_status_t get_opendrive_map(std::string &map_file);
+    dyn_reconf_status_t set_opendrive_map(const std::string &map_file);
+    dyn_reconf_status_t get_opendrive_frame(std::string &frame);
+    dyn_reconf_status_t get_popendrive_frame(const std::string &frame);
+    dyn_reconf_status_t get_distance_tolerance(double &tolerance);
+    dyn_reconf_status_t set_distance_tolerance(double tolerance);
+    dyn_reconf_status_t get_angle_tolerance(double &tolerance);
+    dyn_reconf_status_t set_angle_tolerance(double tolerance);
+    dyn_reconf_status_t get_resolution(double &resolution);
+    dyn_reconf_status_t set_resolution(double resolution);
+    dyn_reconf_status_t get_scale_factor(double &scale);
+    dyn_reconf_status_t set_scale_factor(double scale);
+    dyn_reconf_status_t get_min_road_length(double &length);
+    dyn_reconf_status_t set_min_raod_length(double length);
     /**
       * \brief Destructor
       *
@@ -47,4 +46,125 @@ class COpendriveGPModule : public CNavPlannerModule<ModuleCfg>
     ~COpendriveGPModule();
   };
 
+  template<class ModuleCfg>
+  COpendriveGPModule<ModuleCfg>::COpendriveGPModule(const std::string &name,const std::string &name_space) : CNavPlannerModule<ModuleCfg>(name,name_space)
+  {
+
+  }
+
+  /* parameter functions */
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::is_multi_hypothesis(bool &enable)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::multy_hypothesis(bool enable)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_cost_type(cost_type_t &type)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_cost_type(cost_type_t type)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_opendrive_map(std::string &map_file)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_opendrive_map(const std::string &map_file)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_opendrive_frame(std::string &frame)
+  {
+
+  }  
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_popendrive_frame(const std::string &frame)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_distance_tolerance(double &tolerance)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_distance_tolerance(double tolerance)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_angle_tolerance(double &tolerance)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_angle_tolerance(double tolerance)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_resolution(double &resolution)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_resolution(double resolution)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_scale_factor(double &scale)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_scale_factor(double scale)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::get_min_road_length(double &length)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  dyn_reconf_status_t COpendriveGPModule<ModuleCfg>::set_min_raod_length(double length)
+  {
+
+  }
+
+  template<class ModuleCfg>
+  COpendriveGPModule<ModuleCfg>::~COpendriveGPModule()
+  {
+
+  }
+
   #endif
diff --git a/src/ackermann_lp_module.cpp b/src/ackermann_lp_module.cpp
deleted file mode 100644
index a66448f456e5239ba0f3078182a3b38624d3722e..0000000000000000000000000000000000000000
--- a/src/ackermann_lp_module.cpp
+++ /dev/null
@@ -1,326 +0,0 @@
-#include <adc_nav_module/ackermann_lp_module.h>
-
-template <class ModuleCfg>
-CAckermannLPModule<ModuleCfg>::CAckermannLPModule(const std::string &name,const std::string &name_space)
-{
-
-}
-
-template <class ModuleCfg>
-/* parameter functions */
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::using_steer_angle(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::use_steer_angle(bool steer_angle)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::pruning_plan(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::prune_plan(bool enable)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::using_dead_zone(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::use_dead_zone(bool enable, double dead_zone)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_trans_vel_samples(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_trans_vel_samples(unsigned int samples)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_steer_angle_samples(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_steer_angle_samples(unsigned int samples)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_angular_el_samples(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_angular_vel_samples(unsigned int samples)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_cmd_vel_average_samples(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_cmd_vel_average_samples(unsigned int samples)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_odom_average_samples(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_odom_average_samples(unsigned int samples)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_heading_cost_points(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_heading_cost_points(unsigned int points)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_simulation_time(double &min,double &max)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_simulation_time(double &min,double &max)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_simulation_res(double &linear, double &angular)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_simulation_res(double &linear, double &angular)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_path_distance_cost(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_path_distance_cost(double cost)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_goal_distance_cost(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_goal_distance_cost(double cost)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_obstacle_cost(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_obstacle_cost(double cost)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_heading_cost(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_heading_cost(double cost)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_goal_tolerances(double &xy,double &yaw)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_goal_tolerances(double &xy,double &yaw)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_linear_velocity_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_linear_velocity_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_angular_velocity_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_angular_velocity_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_linear_max_accel(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_linear_max_accel(double max)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_angular_max_accel(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_angular_max_accel(double max)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_steer_angle_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_steer_angle_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_steer_velocity_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_steer_velocity_range(double &max,double &min)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_min_segment_length(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_min_segment_length(double min_lenght)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_axis_distance(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_axis_distance(double distance)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_wheel_distance(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_wheel_distance(double distance)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::get_wheel_radius(void)
-{
-
-}
-
-template <class ModuleCfg>
-dyn_reconf_status_t CAckermannLPModule<ModuleCfg>::set_wheel_radius(double radius)
-{
-
-}
-
-template <class ModuleCfg>
-CAckermannLPModule<ModuleCfg>::~CAckermannLPModule()
-{
-
-}
diff --git a/src/adc_nav_module.cpp b/src/adc_nav_module.cpp
index f97c3777361477505a6bc454f0b3d8550a02bb7c..2183190735764cbe25608904a1c397e4cb1df77a 100644
--- a/src/adc_nav_module.cpp
+++ b/src/adc_nav_module.cpp
@@ -113,8 +113,6 @@ bool CADCNavModule::go_to_orientation(double yaw,double heading_tol)
   double xy_tol,yaw_tol;
 
   this->lock();
-  if(this->config.move_base_cancel_prev && !this->is_finished())
-    this->cancel_action();
   if(heading_tol!=DEFAULT_HEADING_TOL)
   {
     if(this->get_goal_tolerances(xy_tol,yaw_tol))
@@ -147,8 +145,6 @@ bool CADCNavModule::go_to_position(double x,double y,double x_y_pos_tol)
   double xy_tol,yaw_tol;
 
   this->lock();
-  if(this->config.move_base_cancel_prev && !this->is_finished())
-    this->cancel_action();
   if(x_y_pos_tol!=DEFAULT_X_Y_POS_TOL)
   {
     if(this->get_goal_tolerances(xy_tol,yaw_tol))
@@ -181,8 +177,6 @@ bool CADCNavModule::go_to_pose(double x,double y,double yaw,double heading_tol,d
   double xy_tol,yaw_tol;
 
   this->lock();
-  if(this->config.move_base_cancel_prev && !this->is_finished())
-    this->cancel_action();
   if(heading_tol!=DEFAULT_HEADING_TOL || x_y_pos_tol!=DEFAULT_X_Y_POS_TOL)
   {
     if(this->get_goal_tolerances(xy_tol,yaw_tol))
diff --git a/src/nav_costmap_module.cpp b/src/nav_costmap_module.cpp
deleted file mode 100644
index 5554a3256375c315ead84d5efe008e5d4c1a380b..0000000000000000000000000000000000000000
--- a/src/nav_costmap_module.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include <adc_nav_module/nav_costmap_module.h>
-
-template <class ModuleCfg>
-CNavCostmapModule<ModuleCfg>::CNavCostmapModule(const std::string &name,const std::string &name_space)
-{
-
-}
-
-template <class ModuleCfg>
-unsigned int CNavCostmapModule<ModuleCfg>::get_width(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_width(unsigned int width)
-{
-
-}
-
-template <class ModuleCfg>
-unsigned int CNavCostmapModule<ModuleCfg>::get_height(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_height(unsigned int height)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::get_footprint(std::vector<geometry_msgs::Point> &footprint)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_footprint(std::vector<geometry_msgs::Point> &footprint)
-{
-
-}
-
-template <class ModuleCfg>
-double CNavCostmapModule<ModuleCfg>::get_transform_tolerance(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_transform_tolerance(double tol)
-{
-
-}
-
-template <class ModuleCfg>
-double CNavCostmapModule<ModuleCfg>::get_update_frequency(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_update_frequency(double freq)
-{
-
-}
-
-template <class ModuleCfg>
-double CNavCostmapModule<ModuleCfg>::get_publish_frequency(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_publish_frequency(double freq)
-{
-
-}
-
-template <class ModuleCfg>
-double CNavCostmapModule<ModuleCfg>::get_resolution(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_resolution(double res)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::get_origin(double &x,double &y)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_origin(double &x,double &y)
-{
-
-}
-
-template <class ModuleCfg>
-double CNavCostmapModule<ModuleCfg>::get_footprint_padding(void)
-{
-
-}
-
-template <class ModuleCfg>
-void CNavCostmapModule<ModuleCfg>::set_footprint_padding(double pad)
-{
-
-}
-
-template <class ModuleCfg>
-CNavCostmapModule<ModuleCfg>::~CNavCostmapModule()
-{
-
-}
-
diff --git a/src/nav_module.cpp b/src/nav_module.cpp
index aa769b2e6062d5757f18d289650155c2e5b0956a..41edeb90049015c69aee87c9ab95979797881c20 100644
--- a/src/nav_module.cpp
+++ b/src/nav_module.cpp
@@ -4,7 +4,10 @@ CNavModule::CNavModule(const std::string &name,const std::string &name_space) :
   tf2_listener(tf2_buffer),
   move_base_action("move_base",this->module_nh.getNamespace()),
   move_base_reconf("move_base_reconf",this->module_nh.getNamespace()),
-  clear_costmaps("clear_costmaps",this->module_nh.getNamespace())
+  make_plan_service("make_plan",this->module_nh.getNamespace()),
+  clear_costmaps("clear_costmaps",this->module_nh.getNamespace()),
+  local_costmap("local_costmap",this->module_nh.getNamespace()),
+  global_costmap("global_costmap",this->module_nh.getNamespace())
 {
   //Variables
   this->path_available = false;
@@ -44,7 +47,7 @@ std::string CNavModule::get_pose_frame_id(void)
 
 std::string CNavModule::get_goal_frame_id(void)
 {
-  return this->gloal_frame_id;
+  return this->goal_frame_id;
 }
 
 act_srv_status CNavModule::start_action(double x,double y,double yaw)
@@ -52,7 +55,7 @@ act_srv_status CNavModule::start_action(double x,double y,double yaw)
   tf2::Quaternion quat;
   act_srv_status status;
 
-  this->lock;
+  this->lock();
   this->move_base_goal.target_pose.header.stamp=ros::Time::now();
   this->move_base_goal.target_pose.header.frame_id=this->goal_frame_id;
   this->move_base_goal.target_pose.pose.position.x=x;
@@ -61,6 +64,8 @@ act_srv_status CNavModule::start_action(double x,double y,double yaw)
   quat.setRPY(0.0,0.0,yaw);
   this->move_base_goal.target_pose.pose.orientation=tf2::toMsg(quat);
   this->path_available=false;
+  if(this->config.move_base_cancel_prev && !this->move_base_action.is_finished())
+    this->move_base_action.cancel();
   status=this->move_base_action.make_request(this->move_base_goal);
   this->unlock();
 
@@ -394,14 +399,14 @@ dyn_reconf_status_t CNavModule::set_controller_patience(double &time)
 }
 
 /* costmaps */
-const CNavCostmapModule &CNavModule::get_local_costmap(void) const
+const CNavCostmapModule<adc_nav_module::NavModuleConfig> &CNavModule::get_local_costmap(void) const
 {
-  return &this->local_costmap;
+  return this->local_costmap;
 }
 
-const CNavCostmapModule &CNavModule::get_global_costmap(void) const
+const CNavCostmapModule<adc_nav_module::NavModuleConfig> &CNavModule::get_global_costmap(void) const
 {
-  return &this->global_costmap;
+  return this->global_costmap;
 }
 
 CNavModule::~CNavModule()
diff --git a/src/opendrive_gp_module.cpp b/src/opendrive_gp_module.cpp
deleted file mode 100644
index c7f907ae459cc33f730296f647c5f8ffa81709a2..0000000000000000000000000000000000000000
--- a/src/opendrive_gp_module.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#include <adc_nav_module/opendrive_gp_module.h>
-
-template<class ModuleCfg>
-COpendriveGPModule<ModuleCfg>::COpendriveGPModule(const std::string &name,const std::string &name_space)
-{
-
-}
-
-/* parameter functions */
-template<class ModuleCfg>
-bool COpendriveGPModule<ModuleCfg>::multi_hypothesis(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::multy_hypothesis(bool enable)
-{
-
-}
-
-template<class ModuleCfg>
-cost_type_t COpendriveGPModule<ModuleCfg>::get_cost_type(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_cost_type(cost_type_t type)
-{
-
-}
-
-template<class ModuleCfg>
-std::string COpendriveGPModule<ModuleCfg>::get_opendrive_map(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_opendrive_map(const std::string &map_file)
-{
-
-}
-
-template<class ModuleCfg>
-std::string COpendriveGPModule<ModuleCfg>::get_opendrive_frame(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::get_popendrive_frame(const std::string &frame)
-{
-
-}
-
-template<class ModuleCfg>
-double COpendriveGPModule<ModuleCfg>::get_distance_tolerance(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_distance_tolerance(double tolerance)
-{
-
-}
-
-template<class ModuleCfg>
-double COpendriveGPModule<ModuleCfg>::get_angle_tolerance(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_angle_tolerance(double tolerance)
-{
-
-}
-
-template<class ModuleCfg>
-double COpendriveGPModule<ModuleCfg>::get_resolution(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_resolution(double resolution)
-{
-
-}
-
-template<class ModuleCfg>
-double COpendriveGPModule<ModuleCfg>::get_scale_factor(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_scale_factor(double scale)
-{
-
-}
-
-template<class ModuleCfg>
-double COpendriveGPModule<ModuleCfg>::get_min_road_length(void)
-{
-
-}
-
-template<class ModuleCfg>
-void COpendriveGPModule<ModuleCfg>::set_min_raod_length(double length)
-{
-
-}
-
-template<class ModuleCfg>
-COpendriveGPModule<ModuleCfg>::~COpendriveGPModule()
-{
-
-}
-