diff --git a/CMakeLists.txt b/CMakeLists.txt
index 10dcee40f9cdf65d287b1e9e35ffb64e2c664453..f4125f48f2180256c5e58262c20e87d5d593bbdb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,10 +7,11 @@ add_definitions(-std=c++11)
 ## Find catkin macros and libraries
 ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
 ## is used, also find other catkin packages
-find_package(catkin REQUIRED COMPONENTS roscpp dynamic_reconfigure iri_ros_tools actionlib move_base_msgs tf nav_msgs std_srvs iri_base_algorithm)
+find_package(catkin REQUIRED COMPONENTS roscpp dynamic_reconfigure iri_ros_tools actionlib move_base_msgs tf nav_msgs std_srvs iri_base_algorithm behaviortree_cpp_v3 iri_behaviortree)
 
 ## System dependencies are found with CMake's conventions
 # find_package(Boost REQUIRED COMPONENTS system)
+find_package(ZMQ)
 
 find_package(iriutils REQUIRED)
 
@@ -101,8 +102,8 @@ generate_dynamic_reconfigure_options(
 ## DEPENDS: system dependencies of this project that dependent projects also need
 catkin_package(
  INCLUDE_DIRS include
- LIBRARIES iri_ana_nav_module
- CATKIN_DEPENDS roscpp dynamic_reconfigure iri_ros_tools actionlib move_base_msgs tf nav_msgs std_srvs iri_base_algorithm
+ LIBRARIES iri_ana_nav_module iri_ana_nav_module_bt
+ CATKIN_DEPENDS roscpp dynamic_reconfigure iri_ros_tools actionlib move_base_msgs tf nav_msgs std_srvs iri_base_algorithm behaviortree_cpp_v3 iri_behaviortree
 
 #  DEPENDS system_lib
 )
@@ -121,8 +122,12 @@ include_directories(${iriutils_INCLUDE_DIR})
 add_library(iri_ana_nav_module
   src/iri_ana_nav_module.cpp
 )
+add_library(iri_ana_nav_module_bt
+  src/iri_ana_nav_module_bt.cpp
+)
 
 target_link_libraries(iri_ana_nav_module ${catkin_LIBRARIES})
+target_link_libraries(iri_ana_nav_module_bt ${catkin_LIBRARIES})
 target_link_libraries(iri_ana_nav_module ${iriutils_LIBRARY})
 ##Link to other modules
 ##target_link_libraries(new_module <module path>/lib<module_name>.so)
@@ -131,6 +136,7 @@ target_link_libraries(iri_ana_nav_module ${iriutils_LIBRARY})
 ## as an example, code may need to be generated before libraries
 ## either from message generation or dynamic reconfigure
 add_dependencies(iri_ana_nav_module ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+add_dependencies(iri_ana_nav_module_bt ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
 
 add_executable(iri_ana_nav_client src/iri_ana_nav_client_alg.cpp src/iri_ana_nav_client_alg_node.cpp)
 
diff --git a/include/iri_ana_nav_module/iri_ana_nav_module_bt.h b/include/iri_ana_nav_module/iri_ana_nav_module_bt.h
index 2e339fc212b6a410038e8d756fb8f8ce271a087f..a0f08a45ad04bab2cad27b3ddfd4a2981735566d 100644
--- a/include/iri_ana_nav_module/iri_ana_nav_module_bt.h
+++ b/include/iri_ana_nav_module/iri_ana_nav_module_bt.h
@@ -52,7 +52,7 @@ class CIriAnaNavModuleBT
       */
     CIriAnaNavModuleBT();
 
-    void init(IriBehaviorTreeFactory *factory, std::string path, std::string tree_xml_file);
+    void init(IriBehaviorTreeFactory *factory);
     /**
     * \brief Destructor
     *
diff --git a/package.xml b/package.xml
index e730d1037ab86874da6d8c3a7014b72920d3b6e1..62e5858717827c1612ac8a9da343b1a59faf4b35 100644
--- a/package.xml
+++ b/package.xml
@@ -60,6 +60,11 @@
   <run_depend>nav_msgs</run_depend>
   <run_depend>tf</run_depend>
   <run_depend>std_srvs</run_depend>
+  <run_depend>behaviortree_cpp_v3</run_depend>
+  <run_depend>iri_behaviortree</run_depend>
+
+  <build_depend>behaviortree_cpp_v3</build_depend>
+  <build_depend>iri_behaviortree</build_depend>
   <!-- new dependencies -->
   <!--<run_depend>new run dependency</run_depend>-->
 
diff --git a/src/iri_ana_nav_module_bt.cpp b/src/iri_ana_nav_module_bt.cpp
index 8b2e98f5f7b1fc7204b9df1fd04e2bbed7d61b87..d6db9453a1725d5add987c552d320b9a18b27037 100644
--- a/src/iri_ana_nav_module_bt.cpp
+++ b/src/iri_ana_nav_module_bt.cpp
@@ -10,7 +10,7 @@ CIriAnaNavModuleBT::CIriAnaNavModuleBT() :
 
 }
 
-void CIriAnaNavModuleBT::init(IriBehaviorTreeFactory *factory, std::string path, std::string tree_xml_file)
+void CIriAnaNavModuleBT::init(IriBehaviorTreeFactory *factory)
 {
   // definition of ports
   BT::PortsList orientation_port = { BT::InputPort<double>("yaw"), BT::InputPort<double>("heading_tol") };
@@ -591,19 +591,19 @@ BT::NodeStatus CIriAnaNavModuleBT::costmap_is_auto_clear_enabled()
   return BT::NodeStatus::SUCCESS;
 }
 
-void AnaNavBtAlgNode::tick()
+void CIriAnaNavModuleBT::tick()
 {
   ROS_INFO("-------Tick-------");
   this->status = this->tree.root_node->executeTick();
 }
 
-void AnaNavBtAlgNode::stop()
+void CIriAnaNavModuleBT::stop()
 {
   ROS_INFO("-------STOP-------");
   nav.stop();
 }
 
-void AnaNavBtAlgNode::restart()
+void CIriAnaNavModuleBT::restart()
 {
   if (nav.is_finished())
   {
@@ -624,7 +624,7 @@ void AnaNavBtAlgNode::restart()
   }
 }
 
-void AnaNavBtAlgNode::create_tree(std::string path, std::string tree_xml_file)
+void CIriAnaNavModuleBT::create_tree(std::string path, std::string tree_xml_file)
 {
   this->path=path;
   this->tree_xml_file=tree_xml_file;
@@ -678,7 +678,7 @@ void AnaNavBtAlgNode::create_tree(std::string path, std::string tree_xml_file)
   }
 }
 
-void AnaNavBtAlgNode::enable_cout_logger()
+void CIriAnaNavModuleBT::enable_cout_logger()
 {
   try
   {
@@ -690,7 +690,7 @@ void AnaNavBtAlgNode::enable_cout_logger()
   }
 }
 
-void AnaNavBtAlgNode::enable_minitrace_logger()
+void CIriAnaNavModuleBT::enable_minitrace_logger()
 {
   try
   {
@@ -702,7 +702,7 @@ void AnaNavBtAlgNode::enable_minitrace_logger()
   }
 }
 
-void AnaNavBtAlgNode::enable_file_logger()
+void CIriAnaNavModuleBT::enable_file_logger()
 {
   if (this->logger_file == NULL)
   {
@@ -714,7 +714,7 @@ void AnaNavBtAlgNode::enable_file_logger()
   }
 }
 
-void AnaNavBtAlgNode::enable_zmq_publisher()
+void CIriAnaNavModuleBT::enable_zmq_publisher()
 {
   try
   {
@@ -726,7 +726,7 @@ void AnaNavBtAlgNode::enable_zmq_publisher()
   }
 }
 
-void AnaNavBtAlgNode::enable_print_tree()
+void CIriAnaNavModuleBT::enable_print_tree()
 {
   if (!print_tree_enabled)
   {
@@ -737,30 +737,30 @@ void AnaNavBtAlgNode::enable_print_tree()
     print_tree_enabled = true;
   }}
 
-void AnaNavBtAlgNode::disable_cout_logger()
+void CIriAnaNavModuleBT::disable_cout_logger()
 {
   delete this->logger_cout;
   this->logger_cout = NULL;
 }
 
-void AnaNavBtAlgNode::disable_minitrace_logger()
+void CIriAnaNavModuleBT::disable_minitrace_logger()
 {
   delete this->logger_minitrace;
   this->logger_minitrace = NULL;
 }
 
-void AnaNavBtAlgNode::disable_file_logger()
+void CIriAnaNavModuleBT::disable_file_logger()
 {
   delete this->logger_file;
   this->logger_file = NULL;
 }
 
-void AnaNavBtAlgNode::disable_zmq_publisher()
+void CIriAnaNavModuleBT::disable_zmq_publisher()
 {
   delete this->publisher_zmq;
   this->publisher_zmq = NULL;
 }
-void AnaNavBtAlgNode::disable_print_tree()
+void CIriAnaNavModuleBT::disable_print_tree()
 {
   print_tree_enabled = false;
 }