diff --git a/model/pit/ndn-pit-entry-impl.h b/model/pit/ndn-pit-entry-impl.h
index 751402f..f3e8c62 100644
--- a/model/pit/ndn-pit-entry-impl.h
+++ b/model/pit/ndn-pit-entry-impl.h
@@ -28,6 +28,10 @@
 
 namespace pit {
 
+/**
+ * @ingroup ndn-pit
+ * @brief PIT entry implementation with additional pointers to the underlying container
+ */
 template<class Pit>
 class EntryImpl : public Entry
 {
@@ -89,6 +93,7 @@
   typename Pit::super::iterator item_;
 };
 
+/// @cond include_hidden
 template<class T>
 struct TimestampIndex
 {
@@ -98,6 +103,7 @@
     return a.GetExpireTime () < b.GetExpireTime ();
   }
 };
+/// @endcond
 
 } // namespace pit
 } // namespace ndn
diff --git a/model/pit/ndn-pit-entry-incoming-face.h b/model/pit/ndn-pit-entry-incoming-face.h
index fb3987e..4597f58 100644
--- a/model/pit/ndn-pit-entry-incoming-face.h
+++ b/model/pit/ndn-pit-entry-incoming-face.h
@@ -31,8 +31,8 @@
 namespace pit {
 
 /**
- * \ingroup ndn
- * \brief PIT state component for each incoming interest (not including duplicates)
+ * @ingroup ndn-pit
+ * @brief PIT state component for each incoming interest (not including duplicates)
  */
 struct IncomingFace
 {
diff --git a/model/pit/ndn-pit-entry-outgoing-face.h b/model/pit/ndn-pit-entry-outgoing-face.h
index 20dfdaf..6b498a8 100644
--- a/model/pit/ndn-pit-entry-outgoing-face.h
+++ b/model/pit/ndn-pit-entry-outgoing-face.h
@@ -31,8 +31,8 @@
 namespace pit {
 
 /**
- * \ingroup ndn
- * \brief PIT state component for each outgoing interest
+ * @ingroup ndn-pit
+ * @brief PIT state component for each outgoing interest
  */
 struct OutgoingFace
 {
diff --git a/model/pit/ndn-pit-entry.h b/model/pit/ndn-pit-entry.h
index 3cb5371..dd90b9f 100644
--- a/model/pit/ndn-pit-entry.h
+++ b/model/pit/ndn-pit-entry.h
@@ -48,43 +48,9 @@
 
 namespace pit {
 
-/// @cond include_hidden
-class i_face {};
-class i_retx {};
-/// @endcond
-
 /**
- * \ingroup ndn
- * \brief Typedef for indexed face container of PitEntryOutgoingFace
- *
- * Indexes:
- * - by face (may be it will be possible to replace with just the std::map)
- */
-// struct OutgoingFaceContainer
-// {
-//   /// @cond include_hidden
-//   typedef boost::multi_index::multi_index_container<
-//     OutgoingFace,
-//     boost::multi_index::indexed_by<
-//       // For fast access to elements using NdnFace
-//       boost::multi_index::ordered_unique<
-//         boost::multi_index::tag<i_face>,
-//         boost::multi_index::member<OutgoingFace, Ptr<Face>, &OutgoingFace::m_face>
-//       >
-//       // ,
-//       // boost::multi_index::ordered_non_unique<
-//       //   boost::multi_index::tag<i_retx>,
-//       //   boost::multi_index::member<OutgoingFace, uint32_t, &OutgoingFace::m_retxCount>
-//       // >
-//     >
-//    > type;
-//   /// @endcond
-// };
-
-
-/**
- * \ingroup ndn
- * \brief structure for PIT entry
+ * @ingroup ndn-pit
+ * @brief structure for PIT entry
  *
  * All set-methods are virtual, in case index rearrangement is necessary in the derived classes
  */
@@ -315,6 +281,7 @@
   std::list< boost::shared_ptr<fw::Tag> > m_fwTags; ///< @brief Forwarding strategy tags
 };
 
+/// @cond include_hidden
 struct EntryIsNotEmpty
 {
   bool
@@ -323,6 +290,7 @@
     return !entry->GetIncoming ().empty ();
   }
 };
+/// @endcond
 
 std::ostream& operator<< (std::ostream& os, const Entry &entry);
 
diff --git a/model/pit/ndn-pit-impl.h b/model/pit/ndn-pit-impl.h
index 26e3a6b..6a8dfcd 100644
--- a/model/pit/ndn-pit-impl.h
+++ b/model/pit/ndn-pit-impl.h
@@ -43,8 +43,8 @@
 namespace pit {
 
 /**
- * \ingroup ndn
- * \brief Class implementing Pending Interests Table
+ * @ingroup ndn-pit
+ * @brief Class implementing Pending Interests Table
  */
 template<class Policy>
 class PitImpl : public Pit
diff --git a/model/pit/ndn-pit.h b/model/pit/ndn-pit.h
index 4c07fd2..0699479 100644
--- a/model/pit/ndn-pit.h
+++ b/model/pit/ndn-pit.h
@@ -30,6 +30,18 @@
 namespace ns3 {
 namespace ndn {
 
+/**
+ * @ingroup ndn
+ * @defgroup ndn-pit PIT
+ */
+
+/**
+ * @ingroup ndn-pit
+ * @brief Namespace for PIT operations
+ */
+namespace pit {
+}
+
 class L3Protocol;
 class Face;
 class ContentObject;
@@ -42,8 +54,8 @@
 ////////////////////////////////////////////////////////////////////////
 
 /**
- * \ingroup ndn
- * \brief Class implementing Pending Interests Table
+ * @ingroup ndn-pit
+ * @brief Class implementing Pending Interests Table
  */
 class Pit : public Object
 {
