diff --git a/src/status-viewer.hpp b/src/status-viewer.hpp
new file mode 100644
index 0000000..e7e4113
--- /dev/null
+++ b/src/status-viewer.hpp
@@ -0,0 +1,87 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2017, Regents of the University of California,
+ *
+ * This file is part of NFD Control Center.  See AUTHORS.md for complete list of NFD
+ * authors and contributors.
+ *
+ * NFD Control Center is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ *
+ * NFD Control Center is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with NFD
+ * Control Center, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef NCC_STATUS_VIEWER_HPP
+#define NCC_STATUS_VIEWER_HPP
+
+#include "forwarder-status.hpp"
+#include "fib-status.hpp"
+#include "rib-status.hpp"
+
+#include <ndn-cxx/face.hpp>
+#include <ndn-cxx/name.hpp>
+#include <ndn-cxx/util/scheduler.hpp>
+#include <ndn-cxx/mgmt/nfd/fib-entry.hpp>
+#include <ndn-cxx/mgmt/nfd/rib-entry.hpp>
+#include <ndn-cxx/mgmt/nfd/controller.hpp>
+#include <ndn-cxx/mgmt/nfd/status-dataset.hpp>
+
+#include <QObject>
+#include <QtQml/QQmlContext>
+#include <QtQml/QQmlApplicationEngine>
+
+namespace ndn {
+
+class StatusViewer : public QObject
+{
+  Q_OBJECT
+public:
+  explicit
+  StatusViewer(Face& face, KeyChain& keyChain);
+
+  void
+  onStatusRetrieved(const nfd::ForwarderStatus& status);
+
+  void
+  onFibStatusRetrieved(const std::vector<nfd::FibEntry>& status);
+
+  void
+  onRibStatusRetrieved(const std::vector<nfd::RibEntry>& status);
+
+  void
+  onStatusTimeout();
+
+private:
+  void
+  requestNfdStatus();
+
+signals:
+  void
+  showStatus();
+
+public slots:
+  void
+  present();
+
+private:
+  Face& s_face;
+  KeyChain& s_keyChain;
+  nfd::Controller* s_controller;
+  Scheduler s_scheduler;
+
+  QQmlApplicationEngine s_engine;
+
+  ForwarderStatusModel s_forwarderStatusModel;
+  FibStatusModel s_fibModel;
+  RibStatusModel s_ribModel;
+};
+
+} // namespace ndn
+
+#endif // NCC_STATUS_VIEWER_HPP
