diff --git a/nav2_dwb_controller/dwb_core/CMakeLists.txt b/nav2_dwb_controller/dwb_core/CMakeLists.txt
index 5bd5dd8a49ee257dbd9d3f7a7e5c498d70e02502..c5f0027f4516a9ba5d9a11088986a66419ef4937 100644
--- a/nav2_dwb_controller/dwb_core/CMakeLists.txt
+++ b/nav2_dwb_controller/dwb_core/CMakeLists.txt
@@ -75,4 +75,6 @@ ament_export_include_directories(include)
 ament_export_libraries(dwb_core)
 ament_export_dependencies(${dependencies})
 
+pluginlib_export_plugin_description_file(nav2_core dwb_core.xml)
+
 ament_package()
diff --git a/nav2_dwb_controller/dwb_core/dwb_core.xml b/nav2_dwb_controller/dwb_core/dwb_core.xml
new file mode 100644
index 0000000000000000000000000000000000000000..abd34148e386a5dda423ad85b8c0f6bb56302626
--- /dev/null
+++ b/nav2_dwb_controller/dwb_core/dwb_core.xml
@@ -0,0 +1,7 @@
+<class_libraries>
+  <library path="dwb_core">
+    <class type="dwb_core::DWBLocalPlanner" base_class_type="nav2_core::LocalPlanner">
+      <description></description>
+    </class>
+  </library>
+</class_libraries>
diff --git a/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp b/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
index 16251f51a09898dd14059f6cc60bd2cab12535e8..4e441935a27ef6d1a81f8adf5e877727149b3e3f 100644
--- a/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
+++ b/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
@@ -49,6 +49,7 @@
 #include "rclcpp/rclcpp.hpp"
 #include "rclcpp_lifecycle/lifecycle_node.hpp"
 #include "pluginlib/class_loader.hpp"
+#include "pluginlib/class_list_macros.hpp"
 
 namespace dwb_core
 {
@@ -209,6 +210,7 @@ protected:
   pluginlib::ClassLoader<TrajectoryGenerator> traj_gen_loader_;
   TrajectoryGenerator::Ptr traj_generator_;
 
+  pluginlib::ClassLoader<nav2_core::GoalChecker> goal_checker_loader_;
   nav2_core::GoalChecker::Ptr goal_checker_;
 
   pluginlib::ClassLoader<TrajectoryCritic> critic_loader_;
diff --git a/nav2_dwb_controller/dwb_core/package.xml b/nav2_dwb_controller/dwb_core/package.xml
index d1897b3de4c41f6d0e7195fa4a6ea886a62a58a6..b2e69fd2e56e8751e77cc3637d5716c5bf6a6815 100644
--- a/nav2_dwb_controller/dwb_core/package.xml
+++ b/nav2_dwb_controller/dwb_core/package.xml
@@ -48,5 +48,6 @@
 
   <export>
     <build_type>ament_cmake</build_type>
+    <LocalPlanner plugin="${prefix}/dwb_core.xml" />
   </export>
 </package>
diff --git a/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp b/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
index a124f0eabd8acb3765693406d8693e74ca9f5f74..fdce54b22d28c1267587b8978693fec547808b30 100644
--- a/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
+++ b/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
@@ -569,5 +569,6 @@ DWBLocalPlanner::transformGlobalPlan(
 
 }  // namespace dwb_core
 
-// Register this planner as a LocalPlanner plugin
-// PLUGINLIB_EXPORT_CLASS(dwb_core::DWBLocalPlanner, nav_core2::LocalPlanner)
+// Register this planner as a nav2_core plugin
+PLUGINLIB_EXPORT_CLASS(dwb_core::DWBLocalPlanner,
+  nav2_core::LocalPlanner)
diff --git a/nav2_dwb_controller/dwb_plugins/plugins.xml b/nav2_dwb_controller/dwb_plugins/plugins.xml
index 0616c2ff6c0a3cf7d4e3e74f371b7d76a36ab215..afa3b939a50ae7b6d6620d4116d12d6288255c72 100644
--- a/nav2_dwb_controller/dwb_plugins/plugins.xml
+++ b/nav2_dwb_controller/dwb_plugins/plugins.xml
@@ -1,6 +1,6 @@
 <class_libraries>
   <library path="simple_goal_checker">
-    <class type="dwb_plugins::SimpleGoalChecker" base_class_type="dwb_core::GoalChecker">
+    <class type="dwb_plugins::SimpleGoalChecker" base_class_type="nav2_core::GoalChecker">
       <description></description>
     </class>
   </library>
@@ -13,7 +13,7 @@
     </class>
   </library>
   <library path="stopped_goal_checker">
-    <class type="dwb_plugins::StoppedGoalChecker" base_class_type="dwb_core::GoalChecker">
+    <class type="dwb_plugins::StoppedGoalChecker" base_class_type="nav2_core::GoalChecker">
       <description></description>
     </class>
   </library>
diff --git a/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp b/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp
index 486a310eedc458af594499e88780f0f8a150bbad..832f0faf8afb53d6db9b272b09a3054aa5d926be 100644
--- a/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp
+++ b/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp
@@ -75,4 +75,4 @@ bool SimpleGoalChecker::isGoalReached(
 
 }  // namespace dwb_plugins
 
-PLUGINLIB_EXPORT_CLASS(dwb_plugins::SimpleGoalChecker, dwb_core::GoalChecker)
+PLUGINLIB_EXPORT_CLASS(dwb_plugins::SimpleGoalChecker, nav2_core::GoalChecker)
diff --git a/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp b/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp
index b33cf3a5d62ae3423e5d5ddd8774253d5989c7fb..b280df6fcdc07ad6e052985a96169b185d985577 100644
--- a/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp
+++ b/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp
@@ -32,7 +32,6 @@
  *  POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "dwb_plugins/stopped_goal_checker.hpp"
 #include <cmath>
 #include <memory>
 #include "dwb_plugins/stopped_goal_checker.hpp"
@@ -76,4 +75,4 @@ bool StoppedGoalChecker::isGoalReached(
 
 }  // namespace dwb_plugins
 
-PLUGINLIB_EXPORT_CLASS(dwb_plugins::StoppedGoalChecker, dwb_core::GoalChecker)
+PLUGINLIB_EXPORT_CLASS(dwb_plugins::StoppedGoalChecker, nav2_core::GoalChecker)