diff --git a/daemon/fw/forwarder.cpp b/daemon/fw/forwarder.cpp
new file mode 100644
index 0000000..e47fb5f
--- /dev/null
+++ b/daemon/fw/forwarder.cpp
@@ -0,0 +1,36 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (C) 2014 Named Data Networking Project
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "forwarder.hpp"
+
+namespace ndn {
+
+Forwarder::Forwarder(boost::asio::io_service& ioService)
+{
+}
+
+uint64_t
+Forwarder::addFace(const shared_ptr<Face>& face)
+{
+  return -1;
+}
+
+void
+Forwarder::removeFace(const shared_ptr<Face>& face)
+{
+}
+
+void
+Forwarder::onInterest(const Face& face, const Interest& interest)
+{
+}
+
+void
+Forwarder::onData(const Face& face, const Data& data)
+{
+}
+
+} // namespace ndn
diff --git a/daemon/fw/forwarder.hpp b/daemon/fw/forwarder.hpp
new file mode 100644
index 0000000..3f9947a
--- /dev/null
+++ b/daemon/fw/forwarder.hpp
@@ -0,0 +1,43 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (C) 2014 Named Data Networking Project
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NFD_FW_FORWARDER_HPP
+#define NFD_FW_FORWARDER_HPP
+
+#include "common.hpp"
+#include "face/face.hpp"
+
+namespace ndn {
+
+/**
+ * Forwarder is the main class of NFD.
+ * 
+ * It creates and owns a set of Face listeners
+ */
+class Forwarder
+{
+public:
+  Forwarder(boost::asio::io_service& ioService);
+
+  uint64_t
+  addFace(const shared_ptr<Face>& face);
+
+  void
+  removeFace(const shared_ptr<Face>& face);
+
+  void
+  onInterest(const Face& face, const Interest& interest);
+
+  void
+  onData(const Face& face, const Data& data);
+  
+private:
+  // container< shared_ptr<Face> > m_faces;
+};
+
+}
+
+#endif // NFD_FW_FORWARDER_HPP
