diff --git a/model/cs/content-store-impl.h b/model/cs/content-store-impl.h
index 90d0c95..7058009 100644
--- a/model/cs/content-store-impl.h
+++ b/model/cs/content-store-impl.h
@@ -37,6 +37,10 @@
 namespace ndn {
 namespace cs {
 
+/**
+ * @ingroup ndn-cs
+ * @brief Cache entry implementation with additional references to the base container
+ */
 template<class CS>
 class EntryImpl : public Entry
 {
@@ -65,6 +69,10 @@
 
 
 
+/**
+ * @ingroup ndn-cs
+ * @brief Base implementation of NDN content store
+ */
 template<class Policy>
 class ContentStoreImpl : public ContentStore,
                          protected ndnSIM::trie_with_policy< Name,
@@ -179,7 +187,6 @@
 {
   NS_LOG_FUNCTION (this << interest->GetName ());
 
-  /// @todo Change to search with predicate
   typename super::const_iterator node;
   if (interest->GetExclude () == 0)
     {
diff --git a/model/cs/content-store-nocache.h b/model/cs/content-store-nocache.h
index 79d1284..98c1850 100644
--- a/model/cs/content-store-nocache.h
+++ b/model/cs/content-store-nocache.h
@@ -29,8 +29,8 @@
 namespace cs {
 
 /**
- * \ingroup ndn
- * \brief Implementation of ContentStore that completely disables caching
+ * @ingroup ndn-cs
+ * @brief Implementation of ContentStore that completely disables caching
  */
 class Nocache : public ContentStore
 {
diff --git a/model/cs/content-store-with-freshness.h b/model/cs/content-store-with-freshness.h
index 22242b9..d9fa1ba 100644
--- a/model/cs/content-store-with-freshness.h
+++ b/model/cs/content-store-with-freshness.h
@@ -30,6 +30,10 @@
 namespace ndn {
 namespace cs {
 
+/**
+ * @ingroup ndn-cs
+ * @brief Special content store realization that honors Freshness parameter in Data packets
+ */
 template<class Policy>
 class ContentStoreWithFreshness :
     public ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::freshness_policy_traits > > >
diff --git a/model/cs/content-store-with-stats.h b/model/cs/content-store-with-stats.h
index 3bdb9ec..a3f5fdd 100644
--- a/model/cs/content-store-with-stats.h
+++ b/model/cs/content-store-with-stats.h
@@ -30,6 +30,10 @@
 namespace ndn {
 namespace cs {
 
+/**
+ * @ingroup ndn-cs
+ * @brief Special content store realization that provides ability to track stats of CS operations
+ */
 template<class Policy>
 class ContentStoreWithStats :
     public ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::lifetime_stats_policy_traits > > >
diff --git a/model/cs/ndn-content-store.h b/model/cs/ndn-content-store.h
index 66e7667..10a7bd3 100644
--- a/model/cs/ndn-content-store.h
+++ b/model/cs/ndn-content-store.h
@@ -39,11 +39,20 @@
 class Name;
 class ContentStore;
 
+/**
+ * @ingroup ndn
+ * @defgroup ndn-cs Content Store
+ */
+
+/**
+ * @ingroup ndn-cs
+ * @brief Namespace for ContentStore operations
+ */
 namespace cs {
 
 /**
- * \ingroup ndn
- * \brief NDN content store entry
+ * @ingroup ndn-cs
+ * @brief NDN content store entry
  */
 class Entry : public SimpleRefCount<Entry>
 {
@@ -88,7 +97,7 @@
 
 
 /**
- * \ingroup ndn
+ * @ingroup ndn-cs
  * \brief Base class for NDN content store
  *
  * Particular implementations should implement Lookup, Add, and Print methods
