diff --git a/src/management/nfd-controller.cpp b/src/management/nfd-controller.cpp
index c6fa7e7..735c927 100644
--- a/src/management/nfd-controller.cpp
+++ b/src/management/nfd-controller.cpp
@@ -26,15 +26,33 @@
                                const SuccessCallback& onSuccess,
                                const FailCallback&    onFail)
 {
-  startFibCommand("add-nexthop",
+  // two stage process:
+  // 1. insert FIB entry
+  // 2. add-nexthop <self> to the FIB entry
+
+  // Step 1.
+  startFibCommand("insert",
                   FibManagementOptions()
-                  .setName(prefixToRegister)
-                  .setFaceId(0) // self-registration
-                  .setCost(0),
+                    .setName(prefixToRegister),
+                  bind(&Controller::selfRegisterPrefixAddNextop, this, _1, onSuccess, onFail),
+                  onFail);
+}
+
+void
+Controller::selfRegisterPrefixAddNextop(const FibManagementOptions& entry,
+                                        const SuccessCallback& onSuccess,
+                                        const FailCallback&    onFail)
+{
+  // Step 2.
+  startFibCommand("add-nexthop",
+                  FibManagementOptions(entry) // prefixToRegister should be inside the entry
+                    .setFaceId(0) // self-registration
+                    .setCost(0),
                   bind(&Controller::recordSelfRegisteredFaceId, this, _1, onSuccess),
                   onFail);
 }
 
+
 void
 Controller::selfDeregisterPrefix(const Name& prefixToRegister,
                                  const SuccessCallback& onSuccess,
@@ -49,8 +67,8 @@
 
   startFibCommand("remove-nexthop",
                   FibManagementOptions()
-                  .setName(prefixToRegister)
-                  .setFaceId(m_faceId),
+                    .setName(prefixToRegister)
+                    .setFaceId(m_faceId),
                   bind(onSuccess), onFail);
 }
 
diff --git a/src/management/nfd-controller.hpp b/src/management/nfd-controller.hpp
index 850c72d..968f232 100644
--- a/src/management/nfd-controller.hpp
+++ b/src/management/nfd-controller.hpp
@@ -8,7 +8,6 @@
 #define NDN_MANAGEMENT_NFD_CONTROL_HPP
 
 #include "controller.hpp"
-
 #include "../security/key-chain.hpp"
 
 namespace ndn {
@@ -54,6 +53,11 @@
 
 private:
   void
+  selfRegisterPrefixAddNextop(const FibManagementOptions& entry,
+                              const SuccessCallback& onSuccess,
+                              const FailCallback&    onFail);
+
+  void
   recordSelfRegisteredFaceId(const FibManagementOptions& entry,
                              const SuccessCallback& onSuccess);
 
