diff --git a/daemon/table/cs.hpp b/daemon/table/cs.hpp
new file mode 100644
index 0000000..67283b6
--- /dev/null
+++ b/daemon/table/cs.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_TABLE_CS_H
+#define NFD_TABLE_CS_H
+#include <boost/shared_ptr.hpp>
+#include <ndn-cpp-dev/interest.hpp>
+#include <ndn-cpp-dev/data.hpp>
+#include "cs-entry.hpp"
+namespace ndn {
+
+/** \class Cs
+ *  \brief represents the ContentStore
+ */
+class Cs : boost::noncopyable
+{
+public:
+  Cs();
+  
+  ~Cs();
+  
+  /** \brief inserts a Data packet
+   *  The caller should ensure that this Data packet is admittable,
+   *  ie. not unsolicited from a untrusted source.
+   *  This does not guarantee the Data is added to the cache;
+   *  even if the Data is added, it may be removed anytime in the future.
+   *  \return{ whether the Data is added }
+   */
+  bool
+  insert(boost::shared_ptr<Data> data);
+  
+  /** \brief finds the best match Data for an Interest
+   *  \return{ the best match, if any; otherwise null }
+   */
+  boost::shared_ptr<cs::Entry>
+  find(const Interest& interest);
+};
+
+};//namespace ndn
+#endif//NFD_TABLE_CS_H
