diff --git a/helper/ndn-app-helper.cpp b/helper/ndn-app-helper.cpp
index 2efdee4..2556659 100644
--- a/helper/ndn-app-helper.cpp
+++ b/helper/ndn-app-helper.cpp
@@ -97,5 +97,35 @@
   return app;
 }
 
+////////////////////////////////////////////////////////////////////////////
+
+FactoryCallbackApp::FactoryCallbackApp(const FactoryCallback& factory)
+  : m_factory(factory)
+{
+}
+
+ApplicationContainer
+FactoryCallbackApp::Install(Ptr<Node> node, const FactoryCallback& factory)
+{
+  ApplicationContainer apps;
+  auto app = CreateObject<FactoryCallbackApp>(factory);
+  node->AddApplication(app);
+  apps.Add(app);
+  return apps;
+}
+
+void
+FactoryCallbackApp::StartApplication()
+{
+  m_impl = m_factory();
+}
+
+void
+FactoryCallbackApp::StopApplication()
+{
+  m_impl.reset();
+}
+
+
 } // namespace ndn
 } // namespace ns3
diff --git a/helper/ndn-app-helper.hpp b/helper/ndn-app-helper.hpp
index 88051d4..f50d643 100644
--- a/helper/ndn-app-helper.hpp
+++ b/helper/ndn-app-helper.hpp
@@ -105,6 +105,47 @@
   ObjectFactory m_factory;
 };
 
+/**
+ * @brief An application that can be created using the supplied callback
+ *
+ * Example:
+ *
+ *     class SomeApp
+ *     {
+ *     public:
+ *       SomeApp(size_t initParameter);
+ *       ...
+ *     };
+ *
+ *     FactoryCallbackApp::Install(node, [] () -> shared_ptr<void> {
+ *         return make_shared<SomeApp>(42);
+ *       })
+ *       .Start(Seconds(1.01));
+ */
+class FactoryCallbackApp : public Application
+{
+public:
+  typedef std::function<shared_ptr<void>()> FactoryCallback;
+
+  FactoryCallbackApp(const FactoryCallback& factory);
+
+public:
+  static ApplicationContainer
+  Install(Ptr<Node> node, const FactoryCallback& factory);
+
+protected:
+  // inherited from Application base class.
+  virtual void
+  StartApplication();
+
+  virtual void
+  StopApplication();
+
+private:
+  FactoryCallback m_factory;
+  std::shared_ptr<void> m_impl;
+};
+
 } // namespace ndn
 } // namespace ns3
 
diff --git a/helper/ndn-fib-helper.cpp b/helper/ndn-fib-helper.cpp
index 19536bf..95c0309 100644
--- a/helper/ndn-fib-helper.cpp
+++ b/helper/ndn-fib-helper.cpp
@@ -81,7 +81,6 @@
 
   Ptr<L3Protocol> L3protocol = node->GetObject<L3Protocol>();
   shared_ptr<nfd::FibManager> fibManager = L3protocol->getFibManager();
-  // fibManager->addInterestRule(commandName.toUri(), key, *keyChain.getPublicKey (key));
   fibManager->onFibRequest(*command);
 }
 
