diff --git a/daemon/mgmt/strategy-choice-manager.cpp b/daemon/mgmt/strategy-choice-manager.cpp
index 665f4a8..cd4dc5b 100644
--- a/daemon/mgmt/strategy-choice-manager.cpp
+++ b/daemon/mgmt/strategy-choice-manager.cpp
@@ -72,7 +72,7 @@
 
   const Name& command = request->getName();
 
-  ndn::nfd::FibManagementOptions options;
+  ndn::nfd::StrategyChoiceOptions options;
   if (!extractOptions(*request, options))
     {
       sendResponse(command, 400, "Malformed command");
@@ -99,7 +99,7 @@
 
 bool
 StrategyChoiceManager::extractOptions(const Interest& request,
-                                      ndn::nfd::FibManagementOptions& extractedOptions)
+                                      ndn::nfd::StrategyChoiceOptions& extractedOptions)
 {
   const Name& command = request.getName();
   const size_t optionCompIndex =
@@ -121,7 +121,7 @@
 }
 
 void
-StrategyChoiceManager::setStrategy(const ndn::nfd::FibManagementOptions& options,
+StrategyChoiceManager::setStrategy(const ndn::nfd::StrategyChoiceOptions& options,
                                    ControlResponse& response)
 {
   const Name& prefix = options.getName();
@@ -146,7 +146,7 @@
 }
 
 void
-StrategyChoiceManager::unsetStrategy(const ndn::nfd::FibManagementOptions& options,
+StrategyChoiceManager::unsetStrategy(const ndn::nfd::StrategyChoiceOptions& options,
                                      ControlResponse& response)
 {
   static const Name ROOT_PREFIX;
diff --git a/daemon/mgmt/strategy-choice-manager.hpp b/daemon/mgmt/strategy-choice-manager.hpp
index 6313fbb..2232588 100644
--- a/daemon/mgmt/strategy-choice-manager.hpp
+++ b/daemon/mgmt/strategy-choice-manager.hpp
@@ -9,7 +9,7 @@
 
 #include "mgmt/manager-base.hpp"
 
-#include <ndn-cpp-dev/management/nfd-fib-management-options.hpp>
+#include <ndn-cpp-dev/management/nfd-strategy-choice-options.hpp>
 
 namespace nfd {
 
@@ -35,16 +35,16 @@
 
   bool
   extractOptions(const Interest& request,
-                   ndn::nfd::FibManagementOptions& extractedOptions);
+                   ndn::nfd::StrategyChoiceOptions& extractedOptions);
 
 
 
   void
-  setStrategy(const ndn::nfd::FibManagementOptions& options,
+  setStrategy(const ndn::nfd::StrategyChoiceOptions& options,
               ControlResponse& response);
 
   void
-  unsetStrategy(const ndn::nfd::FibManagementOptions& options,
+  unsetStrategy(const ndn::nfd::StrategyChoiceOptions& options,
                 ControlResponse& response);
 private:
 
