docs: Update documentation and Doxygen documentation generation
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
diff --git a/model/fib/ndn-fib-entry.h b/model/fib/ndn-fib-entry.h
index 0b1a6bc..2f42259 100644
--- a/model/fib/ndn-fib-entry.h
+++ b/model/fib/ndn-fib-entry.h
@@ -45,10 +45,14 @@
 
 class Fib;
 
+/**
+ * @ingroup ndn-fib
+ * @brief Namespace for FIB operations
+ */
 namespace fib {
 
 /**
- * \ingroup ndn
+ * @ingroup ndn-fib
  * \brief Structure holding various parameters associated with a (FibEntry, Face) tuple
  */
 class FaceMetric
@@ -191,8 +195,8 @@
 
 
 /**
- * \ingroup ndn
- * \brief Typedef for indexed face container of Entry
+ * @ingroup ndn-fib
+ * @brief Typedef for indexed face container of Entry
  *
  * Currently, there are 2 indexes:
  * - by face (used to find record and update metric)
@@ -232,7 +236,7 @@
 };
 
 /**
- * \ingroup ndn
+ * @ingroup ndn-fib
  * \brief Structure for FIB table entry, holding indexed list of
  *        available faces and their respective metrics
  */
diff --git a/model/fib/ndn-fib-impl.h b/model/fib/ndn-fib-impl.h
index 3054420..b221d48 100644
--- a/model/fib/ndn-fib-impl.h
+++ b/model/fib/ndn-fib-impl.h
@@ -31,6 +31,10 @@
 namespace ndn {
 namespace fib {
 
+/**
+ * @ingroup ndn-fib
+ * @brief FIB entry implementation with with additional references to the base container
+ */
 class EntryImpl : public Entry
 {
 public:
@@ -60,7 +64,7 @@
 };
 
 /**
- * \ingroup ndn
+ * @ingroup ndn-fib
  * \brief Class implementing FIB functionality
  */
 class FibImpl : public Fib,
diff --git a/model/fib/ndn-fib.h b/model/fib/ndn-fib.h
index 490cdfd..b5e8e40 100644
--- a/model/fib/ndn-fib.h
+++ b/model/fib/ndn-fib.h
@@ -33,8 +33,13 @@
 typedef Interest InterestHeader;
 
 /**
- * \ingroup ndn
- * \brief Class implementing FIB functionality
+ * @ingroup ndn
+ * @defgroup ndn-fib FIB
+ */
+
+/**
+ * @ingroup ndn-fib
+ * @brief Class implementing FIB functionality
  */
 class Fib : public Object
 {
diff --git a/model/fw/best-route.h b/model/fw/best-route.h
index 6648acb..1939a84 100644
--- a/model/fw/best-route.h
+++ b/model/fw/best-route.h
@@ -31,8 +31,8 @@
 namespace fw {
 
 /**
- * \ingroup ndn
- * \brief Best route strategy
+ * @ingroup ndn-fw
+ * @brief Best route strategy
  */
 class BestRoute :
     public GreenYellowRed
diff --git a/model/fw/flooding.h b/model/fw/flooding.h
index f7ce55a..1aa50b0 100644
--- a/model/fw/flooding.h
+++ b/model/fw/flooding.h
@@ -30,10 +30,18 @@
 namespace fw {
 
 /**
- * \ingroup ndn
- * \brief Flooding strategy
+ * @ingroup ndn-fw
+ * @brief Simple flooding strategy
  *
- * \todo Describe
+ * Interests will be forwarded to all available faces available for a route (FIB entry).
+ * If there are no available GREEN or YELLOW faces, interests is dropped.
+ *
+ * Usage example:
+ * @code
+ *     ndnHelper.SetForwardingStrategy ("ns3::ndn::fw::Flooding");
+ *     ...
+ *     ndnHelper.Install (nodes);
+ * @endcode
  */
 class Flooding :
     public Nacks
diff --git a/model/fw/green-yellow-red.h b/model/fw/green-yellow-red.h
index 11817bf..57f17dd 100644
--- a/model/fw/green-yellow-red.h
+++ b/model/fw/green-yellow-red.h
@@ -28,7 +28,8 @@
 namespace fw {
 
 /**
- * \ingroup ndn
+ * @ingroup ndn-fw
+ * @brief Forwarding strategy extensions to track simple link status based on data plane performance
  */
 class GreenYellowRed :
     public Nacks
diff --git a/model/fw/nacks.h b/model/fw/nacks.h
index 7855e19..f9f8bb1 100644
--- a/model/fw/nacks.h
+++ b/model/fw/nacks.h
@@ -27,8 +27,8 @@
 namespace fw {
 
 /**
- * \ingroup ndn
- * \brief Implementation of experimental NACK messages (enables with EnableNACKs option)
+ * @ingroup ndn-fw
+ * @brief Implementation of experimental NACK messages (enables with EnableNACKs option)
  */
 class Nacks :
     public ForwardingStrategy
diff --git a/model/fw/ndn-forwarding-strategy.h b/model/fw/ndn-forwarding-strategy.h
index 49b034b..bfed748 100644
--- a/model/fw/ndn-forwarding-strategy.h
+++ b/model/fw/ndn-forwarding-strategy.h
@@ -29,6 +29,19 @@
 namespace ns3 {
 namespace ndn {
 
+/**
+ * @ingroup ndn
+ * @defgroup ndn-fw NDN forwarding strategies
+ */
+
+
+/**
+ * @ingroup ndn-fw
+ * @brief Namespace for Forwarding Strategy operations
+ */
+namespace fw {
+}
+
 class Face;
 
 class Interest;
@@ -42,8 +55,8 @@
 class ContentStore;
 
 /**
- * \ingroup ndn
- * \brief Abstract base class for Ndn forwarding strategies
+ * @ingroup ndn-fw
+ * @brief Abstract base class for Ndn forwarding strategies
  */
 class ForwardingStrategy :
     public Object
diff --git a/model/fw/ndn-fw-tag.h b/model/fw/ndn-fw-tag.h
index 3407a07..5d02b31 100644
--- a/model/fw/ndn-fw-tag.h
+++ b/model/fw/ndn-fw-tag.h
@@ -27,8 +27,8 @@
 namespace fw {
 
 /**
- * \ingroup ndn
- * \brief Abstract class for the forwarding strategy tag, which can be added to PIT entries
+ * @ingroup ndn-fw
+ * @brief Abstract class for the forwarding strategy tag, which can be added to PIT entries
  */
 class Tag
 {
diff --git a/model/fw/per-fib-limits.h b/model/fw/per-fib-limits.h
index 560432a..89ce352 100644
--- a/model/fw/per-fib-limits.h
+++ b/model/fw/per-fib-limits.h
@@ -38,8 +38,8 @@
 namespace fw {
 
 /**
- * \ingroup ndn
- * \brief Strategy implementing per-FIB entry limits
+ * @ingroup ndn-fw
+ * @brief Strategy implementing per-FIB entry limits
  */
 template<class Parent>
 class PerFibLimits :
diff --git a/model/fw/per-out-face-limits.h b/model/fw/per-out-face-limits.h
index fcdd43f..2f8f662 100644
--- a/model/fw/per-out-face-limits.h
+++ b/model/fw/per-out-face-limits.h
@@ -38,8 +38,8 @@
 namespace fw {
 
 /**
- * \ingroup ndn
- * \brief Strategy implementing per-outgoing face limits
+ * @ingroup ndn-fw
+ * @brief Strategy implementing per-outgoing face limits
  */
 template<class Parent>
 class PerOutFaceLimits :
diff --git a/model/fw/smart-flooding.h b/model/fw/smart-flooding.h
index 9263172..b764de8 100644
--- a/model/fw/smart-flooding.h
+++ b/model/fw/smart-flooding.h
@@ -29,7 +29,8 @@
 namespace fw {
 
 /**
- * \ingroup ccnx
+ * @ingroup ndn-fw
+ * @brief Smart flooding forwarding strategy
  */
 class SmartFlooding :
     public GreenYellowRed
diff --git a/model/ndn-common.h b/model/ndn-common.h
index de21c29..8bfc4f9 100644
--- a/model/ndn-common.h
+++ b/model/ndn-common.h
@@ -19,6 +19,19 @@
 #define NDN_NAMESPACE_BEGIN  namespace ns3 { namespace ndn {
 #define NDN_NAMESPACE_END    } /*ndn*/ } /*ns3*/ 
 
+/**
+ * @brief NS-3 namespace
+ */
+namespace ns3 {
+
+/**
+ * @brief ndnSIM namespace
+ */
+namespace ndn {
+}
+
+}
+
 NDN_NAMESPACE_BEGIN
 
 typedef Time TimeInterval;
diff --git a/model/ndn-content-object.h b/model/ndn-content-object.h
index 58e88a3..859543b 100644
--- a/model/ndn-content-object.h
+++ b/model/ndn-content-object.h
@@ -33,7 +33,7 @@
 namespace ndn {
 
 /**
- * @ingroup Ndn
+ * @ingroup ndn
  * @brief ContentObject header
  */
 class ContentObject : public SimpleRefCount<ContentObject>
@@ -198,7 +198,6 @@
 }
 
 /**
- * @ingroup ndn-exceptions
  * @brief Class for ContentObject parsing exception
  */
 class ContentObjectException {};
diff --git a/model/ndn-global-router.h b/model/ndn-global-router.h
index 1ef6329..dad2180 100644
--- a/model/ndn-global-router.h
+++ b/model/ndn-global-router.h
@@ -40,6 +40,7 @@
 typedef Name NameComponents;
 
 /**
+ * @ingroup ndn
  * @brief Class representing global router interface for ndnSIM
  */
 class GlobalRouter : public Object
diff --git a/model/ndn-interest.h b/model/ndn-interest.h
index 748e2d9..d7ab5df 100644
--- a/model/ndn-interest.h
+++ b/model/ndn-interest.h
@@ -37,8 +37,8 @@
 namespace ndn {
 
 /**
+ * @ingroup ndn
  * @brief NDN Interest (wire formats are defined in wire)
- *
  **/
 class Interest : public SimpleRefCount<Interest>
 {
@@ -266,7 +266,6 @@
 }
 
 /**
- * @ingroup ndn-exceptions
  * @brief Class for Interest parsing exception 
  */
 class InterestException {};
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
 {
diff --git a/model/wire/ccnb.h b/model/wire/ccnb.h
index 893d481..9b920b9 100644
--- a/model/wire/ccnb.h
+++ b/model/wire/ccnb.h
@@ -18,6 +18,10 @@
 NDN_NAMESPACE_BEGIN
 
 namespace wire {
+
+/**
+ * @brief Namespace for CCNb wire format operations
+ */
 namespace ccnb {
 
 /**
diff --git a/model/wire/ccnb/ccnb-parser/common.h b/model/wire/ccnb/ccnb-parser/common.h
index aa3f68a..531cd87 100644
--- a/model/wire/ccnb/ccnb-parser/common.h
+++ b/model/wire/ccnb/ccnb-parser/common.h
@@ -31,14 +31,6 @@
 
 namespace wire {
 
-/**
- * \ingroup ndn
- * \defgroup ndn-ccnb CCNB decoding routines
- */
-/**
- * \ingroup ndn-ccnb
- * \brief Namespace for ccnb parer
- */
 namespace CcnbParser {
 
 // forward declarations
@@ -54,8 +46,6 @@
 
 /**
  * \brief Exception thrown if there is a parsing error
- *
- * \todo inherit this class from some exception class and provide meaningful error messages
  */
 class CcnbDecodingException {};
 
diff --git a/model/wire/ndnsim.h b/model/wire/ndnsim.h
index 186335e..417edba 100644
--- a/model/wire/ndnsim.h
+++ b/model/wire/ndnsim.h
@@ -17,7 +17,14 @@
 
 NDN_NAMESPACE_BEGIN
 
+/**
+ * @brief Namespace encapsulating wire operations
+ */
 namespace wire {
+
+/**
+ * @brief Namespace for ndnSIM wire format operations
+ */
 namespace ndnSIM {
 
 /**