diff --git a/README.md b/README.md
index a185ecd..b815951 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,24 @@
-ndnSIM 2.0
-==========
+ndnSIM
+======
 
-ndnSIM 2.0 is a new release of [NS-3 based Named Data Networking (NDN)
-simulator](http://ndnsim.net/1.0/) that went through extensive refactoring and rewriting.
-The key new features of the new version:
+[![Build Status](https://travis-ci.org/named-data-ndnSIM/ndnSIM.svg)](https://travis-ci.org/named-data-ndnSIM/ndnSIM)
 
-- ndnSIM no longer re-implements basic NDN primitives and directly uses implementation from
+A new release of [NS-3 based Named Data Networking (NDN) simulator](http://ndnsim.net/1.0/)
+went through extensive refactoring and rewriting.  The key new features of the new
+version:
+
+- Packet format changed to [NDN Packet Specification](http://named-data.net/doc/ndn-tlv/)
+
+- ndnSIM uses implementation of basic NDN primitives from
   [ndn-cxx library (NDN C++ library with eXperimental eXtensions)](http://named-data.net/doc/ndn-cxx/)
 
 - All NDN forwarding and management is implemented directly using source code of
   [Named Data Networking Forwarding Daemon (NFD)](http://named-data.net/doc/NFD/)
 
-- Packet format changed to [NDN-TLV](http://named-data.net/doc/ndn-tlv/)
+- Allows [simulation of real applications](http://ndnsim.net/2.1/guide-to-simulate-real-apps.html)
+  written against ndn-cxx library
 
-[ndnSIM 2.0 documentation](http://ndnsim.net)
+[ndnSIM documentation](http://ndnsim.net)
 ---------------------------------------------
 
 For more information, including downloading and compilation instruction, please refer to
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 91e7ecb..dfe0463 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -228,7 +228,7 @@
 # "Side Effects:". You can put \n's in the value part of an alias to insert
 # newlines.
 
-ALIASES                =
+ALIASES                = "detail=@details"
 
 # This tag can be used to specify a number of word-keyword mappings (TCL only).
 # A mapping has the form "name=value". For example adding "class=itcl::class"
@@ -482,7 +482,7 @@
 # blocks will be appended to the function's detailed documentation block.
 # The default value is: NO.
 
-HIDE_IN_BODY_DOCS      = NO
+HIDE_IN_BODY_DOCS      = YES
 
 # The INTERNAL_DOCS tag determines if documentation that is typed after a
 # \internal command is included. If the tag is set to NO then the documentation
@@ -759,8 +759,10 @@
                          ../utils \
                          ../apps \
                          ../NFD \
+                         ../ndn-cxx \
                          introspected-doxygen.hpp \
                          doxygen.hpp
+
 # For example:
 # ../../../build/utils/ns3-dev-print-introspected-doxygen-debug --log --group Ndn > introspected-doxygen.hpp
 
@@ -798,7 +800,11 @@
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                =
+EXCLUDE                = ../NFD/tools \
+                         ../NFD/tests \
+                         ../ndn-cxx/util \
+                         ../ndn-cxx/tools \
+                         ../ndn-cxx/examples
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
diff --git a/docs/ns3_html_theme/static/ns3_stylesheet.css b/docs/ns3_html_theme/static/ns3_stylesheet.css
index 0ab405d..3fd412f 100644
--- a/docs/ns3_html_theme/static/ns3_stylesheet.css
+++ b/docs/ns3_html_theme/static/ns3_stylesheet.css
@@ -141,3 +141,12 @@
     color: red;
     font-weight: bold;
 }
+
+table.contentstable h2 {
+    margin: 0;
+    background-image: none;
+}
+
+table.contentstable td .tile {
+    padding: 0 10px 0 10px;
+}
diff --git a/docs/ns3_html_theme/theme.conf b/docs/ns3_html_theme/theme.conf
index 3c06cc4..580a0ac 100644
--- a/docs/ns3_html_theme/theme.conf
+++ b/docs/ns3_html_theme/theme.conf
@@ -4,7 +4,7 @@
 pygments_style = sphinx
 
 [options]
-projectname = ndnSIM 2.0
+projectname = ndnSIM
 homepage = http://ndnsim.net/
 homepage2 = http://irl.cs.ucla.edu/
 apidocs = ndnSIM API
@@ -15,7 +15,7 @@
 # logo = ns-3-inverted-notext-small.png
 logoalt = ns-3 Logo
 projectbrief = NS-3 based Named Data Networking (NDN) simulator
-projectnumber = ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
+projectnumber = ndnSIM: simulation of NDN, ICN, Information-Centric Networking
 
 favicon = favicon.ico
 docstitle = Documentation
diff --git a/docs/source/_templates/indexcontent.html b/docs/source/_templates/indexcontent.html
index 72634b2..55a4b08 100644
--- a/docs/source/_templates/indexcontent.html
+++ b/docs/source/_templates/indexcontent.html
@@ -1,81 +1,105 @@
 {% extends "layout.html" %}
-{% set title = _('ndnSIM 2.0 documentation') %}
+{% set title = _('ndnSIM Documentation') %}
 
 {% block body %}
     <h1>{{ docstitle|e }}</h1>
 
-<p>ndnSIM 2.0 is a new release of <a class="reference external" href="http://ndnsim.net/1.0/">NS-3 based Named Data Networking (NDN) simulator</a> that went through extensive refactoring and rewriting.  The key new features of the new version:</p>
-
-<ul class="simple">
-<li>ndnSIM no longer re-implements basic NDN primitives and directly uses implementation from <a class="reference external" href="http://named-data.net/doc/ndn-cxx/">ndn-cxx library (NDN C++ library with eXperimental eXtensions)</a>.</li>
-<li>All NDN forwarding and management is implemented directly using source code of <a class="reference external" href="http://named-data.net/doc/NFD/">Named
-Data Networking Forwarding Daemon (NFD)</a></li>
-<li>Packet format changed to the <a class="reference external" href="http://named-data.net/doc/ndn-tlv/">NDN packet format</a></li>
-</ul>
-
     <p>
 We invite you to <a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">join our mailing list</a> to see and participate in discussions about ndnSIM implementation and simulations in general (<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a>).
     </p>
 
   {% block tables %}
-  <p><strong>Parts of the documentation:</strong></p>
-  <table class="contentstable" align="center"><tr>
-    <td width="50%" valign="top">
-      <p class="biglink"><a class="biglink" href="{{ pathto("tutorial") }}">ndnSIM 2.0 tutorial</a><br/>
-         <div class="linkdescr" style="margin-left: 20px">
-           <p class="biglink"><a class="biglink" href="{{ pathto("intro") }}">Introduction</a><br/>
-             <span class="linkdescr">what is ndnSIM, how to get support, and what is in the package</span></p>
-           <p class="biglink"><a class="biglink" href="{{ pathto("getting-started") }}">Getting started</a><br/>
-             <span class="linkdescr">portability, requirements, downloading, compiling, simulating</span></p>
-           <p class="biglink"><a class="biglink" href="{{ pathto("helpers") }}">ndnSIM helpers</a><br/>
-             <span class="linkdescr">very important components of ndnSIM for writing simulation scenarios</span></p>
-           <p class="biglink"><a class="biglink" href="{{ pathto("cs") }}">Content Store</a><br/>
-             <span class="linkdescr">several different build-in content store implementations: LRU, LFU, and others</span></p>
-           <p class="biglink"><a class="biglink" href="{{ pathto("fw") }}">Forwarding Strategies</a><br/>
-             <span class="linkdescr">experimenting with different build-in and custom Interest/Data forwarding strategies</span></p>
-           <p class="biglink"><a class="biglink" href="{{ pathto("applications") }}">ndnSIM applications</a><br/>
-             <span class="linkdescr">reference applications for network-leverl evaluations</span></p>
-           <p class="biglink"><a class="biglink" href="{{ pathto("metric") }}">Obtaining metrics</a><br/>
-             <span class="linkdescr">obtaining and visualizing metrics from simulation runs</span></p>
-         </div>
-      </p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("examples") }}">Simulation examples</a><br/>
-          <span class="linkdescr">basic tutorial examples</span></p>
+  <!-- <p><strong>Parts of the documentation:</strong></p> -->
+  <table class="contentstable" align="center">
+    <tr>
+      <td width="50%" valign="top">
+        <h2>Getting Started</h2>
+        <div class="tile">
+          <p class="biglink"><a class="biglink" href="{{ pathto("intro") }}">Introduction</a><br/>
+            <span class="linkdescr">what is ndnSIM, how to get support, and what is in the package</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("getting-started") }}">Downloading and Compiling ndnSIM</a><br/>
+            <span class="linkdescr">requirements, downloading, compiling, simulating</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("faq") }}">FAQs</a><br/>
+            <span class="linkdescr">frequently asked questions (with answers!)</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("examples") }}">Simulation examples</a><br/>
+            <span class="linkdescr">basic tutorial examples</span></p>
+        </div>
+      </td>
+      <td width="50%" valign="top">
+        <h2>Advanced Topics</h2>
+        <div class="tile">
+          <p class="biglink"><a class="biglink" href="doxygen/annotated.html">ndnSIM API documentation</a><br/>
+            <span class="linkdescr">generated documentation of ndnSIM API</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("parallel-simulations") }}">Parallelize simulations using OpenMPI</a><br/>
+            <span class="linkdescr">how to use OpenMPI to parallelize execution of simulation scenarios</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("guide-to-simulate-real-apps") }}">Simulating real applications</a><br/>
+            <span class="linkdescr">guide on how to simulate real application that are written against ndn-cxx library</span></p>
+        </div>
+      </td>
+    </tr>
+    <tr>
+      <td width="50%" valign="top">
+        <h2>ndnSIM tutorial</h2>
+        <div class="tile">
+          <p class="biglink"><a class="biglink" href="{{ pathto("helpers") }}">ndnSIM helpers</a><br/>
+            <span class="linkdescr">very important components of ndnSIM for writing simulation scenarios</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("cs") }}">Content Store</a><br/>
+            <span class="linkdescr">several different build-in content store implementations: LRU, LFU, and others</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("fw") }}">Forwarding Strategies</a><br/>
+            <span class="linkdescr">experimenting with different build-in and custom Interest/Data forwarding strategies</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("applications") }}">ndnSIM applications</a><br/>
+            <span class="linkdescr">reference applications for network-leverl evaluations</span></p>
+          <p class="biglink"><a class="biglink" href="{{ pathto("metric") }}">Obtaining metrics</a><br/>
+            <span class="linkdescr">obtaining and visualizing metrics from simulation runs</span></p>
+        </div>
+      </td>
+      <td width="50%" valign="top">
+        <h2>ndnSIM Versions</h2>
+        <div class="tile">
+          <p class="biglink"><a class="biglink" href="#">ndnSIM 2.1</a><br/>
+            <span class="linkdescr">latest version</span></p>
+          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.0/">ndnSIM 2.0</a><br/>
+          <p class="biglink"><a class="biglink" href="http://ndnsim.net/1.0/">ndnSIM 1.0</a><br/>
+        </div>
+      </td>
+    </tr>
+    <tr>
+      <td width="50%" valign="top">
+        <h2>Publications</h2>
+        <div class="tile">
+          <p class="biglink"><a class="biglink" href="{{ pathto("ndnsim-research-papers") }}">ndnSIM-related publications</a><br/>
+            <span class="linkdescr">general papers about ndnSIM, research papers that use ndnSIM</span></p>
+          <p>If you are referring to ndnSIM in a published work, please cite the following papers, not just the ndnSIM website. Thank you!
+          <ul>
+            <li>
+              S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM 2.0: A new version of the NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0028, 2015 (<a class="reference external" href="http://named-data.net/techreport/ndn-0028-1-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399">BibTex</a>)
+            </li>
+            <li>
+            A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM: NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0005, 2012 (<a class="reference external" href="http://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367">BibTex</a>)
+            </li>
+          </ul>
+        </div>
+      </td>
+      <td width="50%" valign="top">
+        <h2>Miscellaneous</h2>
+        <div class="tile">
+          <p class="biglink"><a class="biglink" href="{{ pathto("RELEASE_NOTES") }}">Release Notes</a><br/>
+            <span class="linkdescr">new features, changes, bug fixes, deprecations, and removals</span></p>
 
-    </td>
-    <td width="50%" valign="top">
-      <p class="biglink"><a class="biglink" href="doxygen/annotated.html">ndnSIM API documentation</a><br/>
-         <span class="linkdescr">doxygen-generated API documentation</span></p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("faq") }}">FAQs</a><br/>
-         <span class="linkdescr">frequently asked questions (with answers!)</span></p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("parallel-simulations") }}">How to use OpenMPI</a><br/>
-         <span class="linkdescr">speeding up simulations by using OpenMPI for parallel execution of scenarios</span></p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("ndnsim-research-papers") }}">ndnSIM research papers</a><br/>
-         <span class="linkdescr">list of ndnSIM-related papers</span></p>
-    </td></tr>
+          <p class="biglink"><a class="biglink" href="http://redmine.named-data.net/projects/ndnsim">Reporting bugs</a><br/>
+            <span class="linkdescr"><a href="http://redmine.named-data.net/projects/ndnsim" target="_blank">ndnSIM Redmine</a>,
+            <span class="linkdescr"><a href="https://github.com/named-data-ndnSIM/ndnSIM/pulls" target="_blank">GitHub pull requests</a></span></p>
+
+          <p class="biglink"><a class="biglink" href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">ndnSIM mailing list</a><br/>
+            <span class="linkdescr"><a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a></span></p>
+
+          <p class="biglink"><a class="biglink" href="{{ pathto("meta/copying") }}">Copyright and License</a></p>
+        </div>
+      </td>
+    </tr>
   </table>
 
-  <p><strong>Meta information:</strong></p>
-  <table class="contentstable" align="center"><tr>
-    <td width="50%" valign="top">
-      <p class="biglink"><a class="biglink" href="{{ pathto("RELEASE_NOTES") }}">Release Notes</a></p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("meta/bugs") }}">Reporting bugs</a></p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("meta/about") }}">About the documentation</a></p>
-    </td><td width="50%" valign="top">
-      <p class="biglink"><a class="biglink" href="{{ pathto("meta/license") }}">ndnSIM license</a></p>
-      <p class="biglink"><a class="biglink" href="{{ pathto("meta/copyright") }}">Copyright</a></p>
-    </td></tr>
-  </table>
   {% endblock %}
 
-  <p>
-<hr class="docutils" />
-<dl class="docutils">
-<dt>If you refer to ndnSIM in a published work, please cite the following papers, not just the ndnSIM website. Thank you!</dt>
-<dd><strong>S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM 2.0: A new version of the NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0028, 2015</strong> (<a class="reference external" href="http://named-data.net/techreport/ndn-0028-1-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399">BibTex</a>)</dd>
-<dd><strong>A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM:
-  NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0005, 2012</strong> (<a class="reference external" href="http://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367">BibTex</a>)</dd>
-</dl>
-  </p>
 
 {% endblock %}
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 2d93856..c648be3 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '2.0'
+version = '2.1'
 # The full version, including alpha/beta/rc tags.
-release = 'Overall ndnSIM 2.0'
+release = 'ndnSIM'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -185,7 +185,7 @@
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, documentclass [howto/manual]).
 latex_documents = [
-  ('tutorial', 'ndnSIM-tutorial.tex', u'ndnSIM 2.0: NS-3 based Named Data Networking (NDN) simulator documentation',
+  ('tutorial', 'ndnSIM-tutorial.tex', u'ndnSIM: NS-3 based Named Data Networking (NDN) simulator documentation',
    u'Alexander Afanasyev, Spyridon Mastorakis, Ilya Moiseenko, and Lixia Zhang', 'manual'),
 ]
 
@@ -215,7 +215,7 @@
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    ('index', 'ndnSIM', u'ndnSIM 2.0: NS-3 based Named Data Networking (NDN) simulator documentation',
+    ('index', 'ndnSIM', u'ndnSIM: NS-3 based Named Data Networking (NDN) simulator documentation',
      [u'Alexander Afanasyev, Spyridon Mastorakis, Ilya Moiseenko, and Lixia Zhang'], 1)
 ]
 
@@ -229,7 +229,7 @@
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-  ('index', 'ndnSIM', u'ndnSIM 2.0: NS-3 based Named Data Networking (NDN) simulator documentation',
+  ('index', 'ndnSIM', u'ndnSIM: NS-3 based Named Data Networking (NDN) simulator documentation',
    u'Alexander Afanasyev, Spyridon Mastorakis, Ilya Moiseenko, and Lixia Zhang', 'ndnSIM', 'One line description of project.',
    'Miscellaneous'),
 ]
diff --git a/docs/source/faq.rst b/docs/source/faq.rst
index 71cb2cb..d97a644 100644
--- a/docs/source/faq.rst
+++ b/docs/source/faq.rst
@@ -18,7 +18,7 @@
     **The following instructions are for those who want to install latest version of boost libraries** :red:`and has root access`.
 
 The following commands would install the latest version of boost libraries (at the time of
-writing, version 1.53) ot ``/usr/local``, assuming you have a root access to your machine.  If
+writing, version 1.59) ot ``/usr/local``, assuming you have a root access to your machine.  If
 you don't have root access, please refer to section :ref:`Installing boost libraries to a
 non-privileged location`.
 
@@ -29,9 +29,9 @@
 .. code-block:: bash
    :linenos:
 
-    wget http://downloads.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2
-    tar jxf boost_1_57_0.tar.bz2
-    cd boost_1_57_0
+    wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2
+    tar jxf boost_1_59_0.tar.bz2
+    cd boost_1_59_0
     ./bootstrap.sh
     sudo ./b2 --prefix=/usr/local install
 
@@ -63,15 +63,15 @@
     going wrong.**
 
 Normally, to compile and install boost libraries in non-privileged mode, you would need to
-issue following commands (e.g., for boost version 1.57.0):
+issue following commands (e.g., for boost version 1.59.0):
 
 .. code-block:: bash
    :linenos:
 
     export BOOSTDIR=/home/non-privileged-user/boost
-    wget http://downloads.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2
-    tar jxf boost_1_57_0.tar.bz2
-    cd boost_1_57_0
+    wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2
+    tar jxf boost_1_59_0.tar.bz2
+    cd boost_1_59_0
     ./bootstrap.sh
     ./b2 --prefix=$BOOSTDIR install
 
diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst
index 3adbd21..03c6aea 100644
--- a/docs/source/getting-started.rst
+++ b/docs/source/getting-started.rst
@@ -4,10 +4,15 @@
 Portability
 ------------
 
+.. image:: https://travis-ci.org/named-data-ndnSIM/ndnSIM.svg?branch=test-travis-ci
+    :target: https://travis-ci.org/named-data-ndnSIM/ndnSIM
+
 ndnSIM 2.0 has been successfully compiled and used on following platforms:
 
 - Ubuntu Linux 12.04 (see the note)
-- Ubuntu Linux 14.04
+- Ubuntu Linux 14.04 (32- and 64-bit platform)
+- Ubuntu Linux 15.05 (64-bit platform)
+- OS X 10.9
 - OS X 10.10
 
 .. note::
@@ -34,64 +39,115 @@
 Prerequisites
 -------------
 
-1. `ndn-cxx library prerequisites <http://named-data.net/doc/ndn-cxx/current/INSTALL.html>`__.
+**1. Core dependencies**
+
+-  ``python`` >= 2.6
+-  ``libsqlite3``
+-  ``libcrypto++``
+-  ``pkg-config``
+-  Boost libraries >= 1.49
 
 .. role:: red
 
 .. note::
-   :red:`ndnSIM requires boost version at least 1.49.` Many linux distribution
-   (Fedora 16, 17 at the time of this writing) ship an old version of boost, making it
-   impossible to compile ndnSIM out-of-the-box.  Please install the latest version, following
-   :ref:`these simple instructions <Installing boost libraries>`.
-
-.. note::
    If you do not have root permissions to install boost, you can install it in your home
    folder.  However, you need to be make sure that `libboost_iostreams` library is successfully
    compiled and is installed.  Please refer to :ref:`the following example <Installing boost
    libraries>` for the hints how to successfully compile and install boost libraries on Ubuntu
    Linux.
 
+Following are the detailed steps for each platform to install the compiler, all necessary
+development tools and libraries, and ndn-cxx prerequisites.
 
-2. If you are planning to use other modules, like visualizer, a number of additional
-dependencies should be installed.  For example, in order to run `visualizer`_ module, the
-following should be installed:
+- OS X
 
-   * For Ubuntu:
+  * OS X with MacPorts:
 
-       .. code-block:: bash
+   .. code-block:: bash
 
-           sudo apt-get install python-dev python-pygraphviz python-kiwi
-           sudo apt-get install python-pygoocanvas python-gnome2
-           sudo apt-get install python-rsvg ipython
+       sudo port install pkgconfig boost sqlite3 libcryptopp
 
-   * For Fedora:
+  * OS X with HomeBrew:
 
-       .. code-block:: bash
+   .. code-block:: bash
 
-           sudo yum install pygoocanvas python-kiwi graphviz-python
+       brew install pkg-config boost cryptopp
 
-           # easy_install method, since pygraphviz is not (yet?) packaged into Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=740687)
-           sudo yum install graphviz-devel
-           sudo yum install python-pip
-           sudo easy_install pygraphviz
+- Linux
 
-   * For OS X with MacPorts:
+  * Ubuntu Linux
 
-       .. code-block:: bash
+   .. code-block:: bash
 
-           sudo port install  py27-pygraphviz py27-goocanvas
+       sudo apt-get install build-essential libsqlite3-dev libcrypto++-dev
 
-           # If you add NDN macports repository, as described in
-           # http://named-data.net/doc/NFD/current/INSTALL.html#install-nfd-using-the-ndn-macports-repository-on-os-x
-           # you will be able to install another useful python module
-           # sudo port install py27-kiwi
+       # For Ubuntu 12.04
+       sudo apt-get install python-software-properties
+       sudo add-apt-repository ppa:boost-latest/ppa
+       sudo apt-get update
+       sudo apt-get install libboost1.55-all-dev
 
-   * For OS X with HomeBrew
+       # For all other Ubuntu versions
+       sudo apt-get install libboost-all-dev
 
-       .. code-block:: bash
+  * Fedora Linux
 
-           brew install boost cryptopp pkg-config libxml2
-           brew link --force libxml2
+   .. code-block:: bash
+
+       sudo yum install gcc-g++ git sqlite-devel cryptopp-devel boost-devel
+
+   .. note::
+      :red:`ndnSIM requires boost version at least 1.49.` Many linux distribution
+      (Fedora 16, 17 at the time of this writing) ship an old version of boost, making it
+      impossible to compile ndnSIM out-of-the-box.  Please install the latest version, following
+      :ref:`these simple instructions <Installing boost libraries>`.
+
+**2. Dependencies for NS-3 Python bindings**
+
+If you are planning to use NS-3 python bindings, a number of additional dependencies
+should be installed.  For example, in order to run `visualizer`_ module, the following
+should be installed:
+
+- OS X
+
+  * OS X with MacPorts:
+
+    .. code-block:: bash
+
+        sudo port install  py27-pygraphviz py27-goocanvas
+
+        # If you add NDN macports repository, as described in
+        # http://named-data.net/doc/NFD/current/INSTALL.html#install-nfd-using-the-ndn-macports-repository-on-os-x
+        # you will be able to install another useful python module
+        # sudo port install py27-kiwi
+
+  * OS X with HomeBrew
+
+    .. code-block:: bash
+
+        brew install boost cryptopp pkg-config libxml2
+        brew link --force libxml2
+
+- Linux
+
+  * Ubuntu Linux
+  
+    .. code-block:: bash
+    
+        sudo apt-get install python-dev python-pygraphviz python-kiwi
+        sudo apt-get install python-pygoocanvas python-gnome2
+        sudo apt-get install python-rsvg ipython
+  
+  * Fedora Linux
+  
+    .. code-block:: bash
+    
+        sudo yum install pygoocanvas python-kiwi graphviz-python
+    
+        # easy_install method, since pygraphviz is not (yet?) packaged into Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=740687)
+        sudo yum install graphviz-devel
+        sudo yum install python-pip
+        sudo easy_install pygraphviz
 
 .. _visualizer: http://www.nsnam.org/wiki/index.php/PyViz
 
@@ -104,6 +160,8 @@
 - a customized python binding generation library (necessary if you want to use NS-3's python
   bindings and/or visualizer module)
 - the source code of ndnSIM module
+- modified source code of ndn-cxx library and NDN Forwarding Daemon (NFD), attached to
+  ndnSIM git repository as git submodules
 
 The following commands download all pieces from GitHub repositories:
 
@@ -115,156 +173,166 @@
     git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
     git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM
 
-The few modification to the base NS-3 code are necessary to run ndnSIM, and the code is
-periodically synchronized with the official developer branch.  Eventually, all the changes will
-be merged to the official branch, but for the time being, it is necessary to use the customized
-branch.
+The last command downloads ndnSIM source code and source code of all submodules (i.e.,
+ndn-cxx and NFD).  If you previously cloned without ``--recursive`` flag, the correct
+versions of submodules can be retrieved using:
+
+.. code-block:: bash
+
+    git submodule update --init
+
+The same command should be run to update submodules when there are new changes available.
+
+.. note::
+    A few modification to the base NS-3 and pybindgen are necessary to run successfully
+    compile and run ndnSIM.  Some of the changes are specific to ndnSIM and some are
+    bugfixes that we are submitting to NS-3 upstream.  We also periodically update
+    repository with the new NS-3 releases, usually in form of rebasing (and if necessary
+    updating or eliminating) our custom patches on top of the released commits.
 
 
 Compiling and running ndnSIM
 ----------------------------
 
-- Compile NS-3 with ndnSIM module
+ndnSIM uses a standard NS-3 compilation procedure.  Normally the following commands should be
+sufficient to configure and build ndnSIM with python bindings enabled:
 
-    ndnSIM uses standard NS-3 compilation procedure.  Normally the following commands should be
-    sufficient to configure and build ndnSIM with python bindings enabled:
+.. code-block:: bash
 
-    .. code-block:: bash
+   cd <ns-3-folder>
+   ./waf configure --enable-examples
+   ./waf
 
-        cd <ns-3-folder>
-        ./waf configure --enable-examples
-        ./waf
+On OS X (with MacPorts), you may need to modify the configure command to use MacPorts
+version of python:
 
-    On MacOS (with macports), you may need to modify the configure command to use macports
-    version of python:
+.. code-block:: bash
 
-    .. code-block:: bash
+   cd <ns-3-folder>
+   ./waf configure --with-python=/opt/local/bin/python2.7 --enable-examples
+   # or run ``sudo port select python python27``
+   ./waf
 
-        cd <ns-3-folder>
-        ./waf configure --with-python=/opt/local/bin/python2.7 --enable-examples
-        # or run ``sudo port select python python27``
-        ./waf
+.. note::
+   On OS X configuration stage may get :ref:`stuck at detecting gtk module <Problems with
+   the gtk python module on OS X>`.  Make sure you have `XQuartz
+   <http://xquartz.macosforge.org>`_ installed or disable python as described in the
+   following instructions.
 
-    .. note::
-        On OS X configuration stage may get :ref:`stuck at detecting gtk module <Problems with
-        the gtk python module on OS X>`.  Make sure you have `XQuartz
-        <http://xquartz.macosforge.org>`_ installed or disable python as described in the
-        following instructions.
+Python bindings is an optional and not very stable feature of NS-3 simulator.  It is
+possible to disable python bindings compilation either to speed up compilation or to avoid
+certain compilation errors (e.g., "Could not find a task generator for the name
+'ns3-visualizer'"):
 
-    Python bindings is an optional and not very stable feature of NS-3 simulator.  It is
-    possible to disable python bindings compilation either to speed up compilation or to avoid
-    certain compilation errors (e.g., "Could not find a task generator for the name
-    'ns3-visualizer'"):
+.. code-block:: bash
 
-    .. code-block:: bash
+   cd <ns-3-folder>
+   ./waf configure --disable-python --enable-examples
+   ./waf
 
-        cd <ns-3-folder>
-        ./waf configure --disable-python --enable-examples
-        ./waf
-
-    For more configuration options, please refer to ``./waf --help``.
+For more configuration options, please refer to ``./waf --help``.
 
 
 Simulating using ndnSIM
 -----------------------
 
-- Examples simulations
+- Example simulation scenarios
 
-    When NS-3 is compiled with ``--with-examples`` flag, you can directly run all examples
-    described in :doc:`examples section of this tutorial <examples>`.  For example, to run
-    ``ndn-simple.cpp`` scenario, you can run the following command:
-
-    .. code-block:: bash
-
-        ./waf --run=ndn-simple
-
-    To run ``ndn-grid.cpp`` scenario:
-
-    .. code-block:: bash
-
-        ./waf --run=ndn-grid
-
-    To run the sample simulation scenarios with the logging module of NS-3 enabled (note that
-    this will work only when NS-3 is compiled in debug mode):
-
-    .. code-block:: bash
-
-        NS_LOG=ndn.Producer:ndn.Consumer ./waf --run=<scenario name>
-
-    If you have compiled with python bindings, then you can try to run these simulations with
-    visualizer:
-
-    .. code-block:: bash
-
-        ./waf --run=ndn-simple --vis
-
-    or:
-
-    .. code-block:: bash
-
-        ./waf --run=ndn-grid --vis
-
-    .. note::
-       Do not forget to configure and compile NS-3 in optimized mode (``./waf configure -d
-       optimized``) in order to run actual simulations.
+  When NS-3 is configured with ``--with-examples`` flag, you can directly run all examples
+  described in :doc:`examples section of this tutorial <examples>`.  For example, to run
+  ``ndn-simple.cpp`` scenario, you can run the following command:
+  
+  .. code-block:: bash
+  
+      ./waf --run=ndn-simple
+  
+  To run ``ndn-grid.cpp`` scenario:
+  
+  .. code-block:: bash
+  
+      ./waf --run=ndn-grid
+  
+  To run the sample simulation scenarios with the logging module of NS-3 enabled (note that
+  this will work only when NS-3 is compiled in debug mode):
+  
+  .. code-block:: bash
+  
+      NS_LOG=ndn.Producer:ndn.Consumer ./waf --run=<scenario name>
+  
+  If you have compiled with python bindings, then you can try to run these simulations with
+  visualizer:
+  
+  .. code-block:: bash
+  
+      ./waf --run=ndn-simple --vis
+  
+  or:
+  
+  .. code-block:: bash
+  
+      ./waf --run=ndn-grid --vis
+  
+  .. note::
+     Do not forget to configure and compile NS-3 in optimized mode (``./waf configure -d
+     optimized``) in order to run actual simulations.
 
 - Real experimentation
 
-    While it is possible to write simulations directly inside NS-3 (in ``scratch/`` folder) or
-    ndnSIM (in ``examples/``), the recommended way is to write your simulation scenarios, as
-    well as any custom extensions, separately from the NS-3 or ndnSIM core.
+  Simulation scenarios can be written directly inside NS-3 in ``scratch/`` or ``src/ndnSIM/examples`` folder.
+  
+  Alternative and a recommended way is to write simulation scenarios in a separate
+  repository, not related to either NS-3 or ndnSIM.  For example, you can use the
+  following template to write your extensions, simulation scenarios, and metric processing
+  scripts: `<http://github.com/cawka/ndnSIM-scenario-template>`_:
+  
+  .. code-block:: bash
+  
+      mkdir ndnSIM
+      cd ndnSIM
+      git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
+      git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
+      git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM
+  
+      # Build and install NS-3 and ndnSIM
+      cd ns-3
+      ./waf configure -d optimized
+      ./waf
+  
+      sudo ./waf install
+      cd ..
+  
+      git clone https://github.com/named-data-ndnSIM/scenario-template.git scenario
+      cd scenario
+      export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
+      export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
+  
+      ./waf configure
+  
+      ./waf --run <scenario>
+  
+  For more detailed information, refer to `README file
+  <https://github.com/cawka/ndnSIM-scenario-template/blob/master/README.md>`_.
 
-    For example, you can use the following template to write your extensions, simulation
-    scenarios, and metric processing scripts:
-    `<http://github.com/cawka/ndnSIM-scenario-template>`_:
+..
+   Examples of template-based simulations
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    .. code-block:: bash
+   1. ndnSIM examples from `<http://ndnsim.net>`_ website and more:
 
-        mkdir ndnSIM
-        cd ndnSIM
-        git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
-        git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
-        git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM
+   - `<http://github.com/cawka/ndnSIM-examples>`_, or
 
-        # Build and install NS-3 and ndnSIM
-        cd ns-3
-        ./waf configure -d optimized
-        ./waf
+   2. Script scenarios and graph processing scripts for simulations used in "A Case for Stateful
+      Forwarding Plane" paper by Yi et al. (`<http://dx.doi.org/10.1016/j.comcom.2013.01.005>`_):
 
-        sudo ./waf install
-        cd ..
+   - `<http://github.com/cawka/ndnSIM-comcom-stateful-fw>`_, or
 
-        git clone https://github.com/named-data-ndnSIM/scenario-template.git scenario
-        cd scenario
-        export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-        export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
+   3. Script scenarios and graph processing scripts for simulations used in "Rapid Traffic
+      Information Dissemination Using Named Data" paper by Wang et
+      al. (`<http://dx.doi.org/10.1145/2248361.2248365>`_):
 
-        ./waf configure
+   - `<http://github.com/cawka/ndnSIM-nom-rapid-car2car>`_, or
 
-        ./waf --run <scenario>
+   - Rocketfuel-based topology generator for ndnSIM preferred format (randomly assigned link
+     delays and bandwidth, based on estimated types of connections between nodes):
 
-    For more detailed information, refer to `README file
-    <https://github.com/cawka/ndnSIM-scenario-template/blob/master/README.md>`_.
-
-Examples of template-based simulations
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1. ndnSIM examples from `<http://ndnsim.net>`_ website and more:
-
-- `<http://github.com/cawka/ndnSIM-examples>`_, or
-
-2. Script scenarios and graph processing scripts for simulations used in "A Case for Stateful
-   Forwarding Plane" paper by Yi et al. (`<http://dx.doi.org/10.1016/j.comcom.2013.01.005>`_):
-
-- `<http://github.com/cawka/ndnSIM-comcom-stateful-fw>`_, or
-
-3. Script scenarios and graph processing scripts for simulations used in "Rapid Traffic
-   Information Dissemination Using Named Data" paper by Wang et
-   al. (`<http://dx.doi.org/10.1145/2248361.2248365>`_):
-
-- `<http://github.com/cawka/ndnSIM-nom-rapid-car2car>`_, or
-
-- Rocketfuel-based topology generator for ndnSIM preferred format (randomly assigned link
-  delays and bandwidth, based on estimated types of connections between nodes):
-
-- `<http://github.com/cawka/ndnSIM-sample-topologies>`_, or
+   - `<http://github.com/cawka/ndnSIM-sample-topologies>`_, or
diff --git a/docs/source/guide-to-simulate-real-apps.rst b/docs/source/guide-to-simulate-real-apps.rst
new file mode 100644
index 0000000..ab73f8d
--- /dev/null
+++ b/docs/source/guide-to-simulate-real-apps.rst
@@ -0,0 +1,4 @@
+Simulating real applications
+============================
+
+TODO
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index de72e7d..4c4c981 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -10,16 +10,33 @@
     .. image:: _static/ndnSIM-structure.*
         :width: 100%
 
-ndnSIM 2.0 is a new release of `NS-3 based Named Data Networking (NDN) simulator
-<http://ndnsim.net/1.0/>`_ that went through extensive refactoring and rewriting.  The key
-new features of the new version:
+- Packet format changed to [NDN Packet Specification](http://named-data.net/doc/ndn-tlv/)
 
-- ndnSIM no longer re-implements basic NDN primitives and directly uses implementation
-  from `ndn-cxx library (NDN C++ library with eXperimental eXtensions)
-  <http://named-data.net/doc/ndn-cxx/>`_.
+- ndnSIM uses implementation of basic NDN primitives from
+  [ndn-cxx library (NDN C++ library with eXperimental eXtensions)](http://named-data.net/doc/ndn-cxx/)
+
+- All NDN forwarding and management is implemented directly using source code of
+  [Named Data Networking Forwarding Daemon (NFD)](http://named-data.net/doc/NFD/)
+
+- Allows [simulation of real applications](http://ndnsim.net/2.1/guide-to-simulate-real-apps.html)
+  written against ndn-cxx library
+
+                
+A new release of `NS-3 based Named Data Networking (NDN) simulator <http://ndnsim.net/1.0/>`__
+went through a number of extensive refactoring and rewriting.  The key new features of the
+new version:
+
+- Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`_
+
+- ndnSIM uses implementation of basic NDN primitives from
+  `ndn-cxx library (NDN C++ library with eXperimental eXtensions)
+  <http://named-data.net/doc/ndn-cxx/>`_
+
 - All NDN forwarding and management is implemented directly using source code of `Named
   Data Networking Forwarding Daemon (NFD) <http://named-data.net/doc/NFD/>`_
-- Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`_
+
+- It is possible to :doc:`simulation some real applications <guide-to-simulate-real-apps>`
+  written against ndn-cxx library
 
 .. note::
    Please note that ndnSIM 2.0 has major refactoring and simulation scenario written for
@@ -84,8 +101,11 @@
 |                 | :ndnsim:`AppFace`),                                                 |
 |                 | etc.                                                                |
 +-----------------+---------------------------------------------------------------------+
-| ``NFD/``        | contains the `NFD`_ source code with few modifications to make it   |
-|                 | compatible with the simulator                                       |
+| ``NFD/``        | submodule of `NDN Forwarding Daemon (NFD)`_ source code with few    |
+|                 | modifications to make it compatible with the simulator              |
++-----------------+---------------------------------------------------------------------+
+| ``ndn-cxx/``    | submodule of `ndn-cxx library`_ source code with few                |
+|                 | modifications to make it compatible with the simulator              |
 +-----------------+---------------------------------------------------------------------+
 | ``apps/``       | applications (in NS-3 sense) that can be installed on the nodes.    |
 |                 | Right now we have one producer (:ndnsim:`Producer`) and a           |
@@ -102,7 +122,9 @@
 | ``examples/``   | contain :doc:`several example scenarios <examples>`                 |
 +-----------------+---------------------------------------------------------------------+
 
-.. _NFD: http://named-data.net/doc/NFD/
+.. _NDN Forwarding Daemon (NFD): http://named-data.net/doc/NFD/
+
+.. _ndn-cxx library: http://named-data.net/doc/ndn-cxx/
 
 Logging
 -------
diff --git a/docs/source/meta/about.rst b/docs/source/meta/about.rst
deleted file mode 100644
index 93518a1..0000000
--- a/docs/source/meta/about.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-=====================
-About these documents
-=====================
-
-These documents are generated from `reStructuredText`_ sources by `Sphinx`_, a
-document processor specifically written for the Python documentation.
-
-.. _reStructuredText: http://docutils.sf.net/rst.html
-.. _Sphinx: http://sphinx.pocoo.org/
-
-.. In the online version of these documents, you can submit comments and suggest
-   changes directly on the documentation pages.
-
-We are always welcome for your comments about the documentation, catched typos, and
-other contributions.
-
-See :ref:`reporting-bugs` for information how to report bugs in this documentation, or ndnSIM itself.
diff --git a/docs/source/meta/bugs.rst b/docs/source/meta/bugs.rst
deleted file mode 100644
index 85912b5..0000000
--- a/docs/source/meta/bugs.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. _reporting-bugs:
-
-==============
-Reporting bugs
-==============
-
-To file a bug report, please use `NDN Redmine <http://redmine.named-data.net/projects/ndnsim>`_.
-
-To create new feature, please fork the code and submit Pull Request on GitHub.
diff --git a/docs/source/meta/license.rst b/docs/source/meta/copying.rst
similarity index 95%
rename from docs/source/meta/license.rst
rename to docs/source/meta/copying.rst
index ae1718a..1609bcb 100644
--- a/docs/source/meta/license.rst
+++ b/docs/source/meta/copying.rst
@@ -1,10 +1,40 @@
-.. _license:
+=====================
+Copyright and License
+=====================
 
-===================
-License information
-===================
+Copyright © 2011-2015 University of California, Los Angeles
 
-Most parts of ndnSIM code are licensed under GNU GPL License 3.0.
+ndnSIM is licensed under conditions of GNU General Public License version 3.0 or later
+with permission to be linked with NS-3 codebase (GPL 2.0).
+
+ndnSIM uses a number of third-party software and libraries, licensed under the following
+licenses:
+
+- Boost libraries licensed under conditions of `Boost Software License 1.0`_
+
+- CryptoPP library is licensed under conditions of `Boost Software License 1.0`_
+
+- SQLite is in `public domain <http://www.sqlite.org/copyright.html>`__
+
+- waf build system is licensed under conditions of `BSD license
+  <https://github.com/named-data/ndn-cxx/blob/master/waf>`__
+
+- ndn-cxx library licensed under conditions of `GNU LGPL 3.0+
+  <https://github.com/named-data/ndn-cxx/blob/master/COPYING.md>`__
+
+- NDN Forwarding Daemon (NFD) licensed under conditions of `GNU GPL 3.0+
+  <https://github.com/named-data/NFD/blob/master/COPYING.md>`__
+  
+ndnSIM also relies on several other third-party libraries with non-GPL compatible
+license. These library fall into category of "System Libraries" under GPL license
+definitions and are used in accordance with GPL license exception for "System Libraries":
+
+The GPL license is provided below in this file. For more information about these licenses,
+see `<http://www.gnu.org/licenses/>`__
+
+.. _Boost Software License 1.0 : http://www.boost.org/users/license.html
+
+----------------------------------------------------------------------------------
 
 GNU GENERAL PUBLIC LICENSE
 ==========================
diff --git a/docs/source/meta/copyright.rst b/docs/source/meta/copyright.rst
deleted file mode 100644
index 6a19d5c..0000000
--- a/docs/source/meta/copyright.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-=========
-Copyright
-=========
-
-ndnSIM and this documentation is:
-
-Copyright © 2011-2015 University of California, Los Angeles
-
-Copyright © 2011-2015 Alexander Afanasyev
-
-Copyright © 2014-2015 Spyridon Mastorakis
-
--------
-
-See :ref:`license` for complete license and permissions information.
diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst
index 37d7fe4..d74bdf0 100644
--- a/docs/source/tutorial.rst
+++ b/docs/source/tutorial.rst
@@ -20,20 +20,18 @@
 
     intro
     getting-started
+    faq
+    examples   
     helpers
     cs
     fw
     applications
-
-.. toctree::
-    :maxdepth: 2
-
-    examples
     metric
-    faq
     parallel-simulations
+    guide-to-simulate-real-apps
     ndnsim-research-papers
 
+
 .. toctree::
     :hidden:
     :glob:
diff --git a/helper/ndn-strategy-choice-helper.hpp b/helper/ndn-strategy-choice-helper.hpp
index 604eaf2..aea07f3 100644
--- a/helper/ndn-strategy-choice-helper.hpp
+++ b/helper/ndn-strategy-choice-helper.hpp
@@ -17,8 +17,8 @@
  * ndnSIM, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
  **/
 
-#ifndef NDN_STRATEGY_CHOICE_HELPER_H
-#define NDN_STRATEGY_CHOICE_HELPER_H
+#ifndef NDNSIM_HELPER_NDN_STRATEGY_CHOICE_HELPER_HPP
+#define NDNSIM_HELPER_NDN_STRATEGY_CHOICE_HELPER_HPP
 
 #include "ns3/ndnSIM/model/ndn-common.hpp"
 
@@ -61,26 +61,26 @@
 {
 public:
   /**
-   * @brief Install a built-in strategy @p strategy on @p node for @namePrefix namespace
+   * @brief Install a built-in strategy @p strategy on @p node for @p namePrefix namespace
    */
   static void
   Install(Ptr<Node> node, const Name& namePrefix, const Name& strategy);
 
   /**
    * @brief Install a built-in strategy @p strategy on nodes in @p c container for
-   *        @namePrefix namespace
+   *        @p namePrefix namespace
    */
   static void
   Install(const NodeContainer& c, const Name& namePrefix, const Name& strategy);
 
   /**
-   * @brief Install a built-in strategy @p strategy on all nodes for @namePrefix namespace
+   * @brief Install a built-in strategy @p strategy on all nodes for @p namePrefix namespace
    */
   static void
   InstallAll(const Name& namePrefix, const Name& strategy);
 
   /**
-   * @brief Install a custom strategy on @p node for @namePrefix namespace
+   * @brief Install a custom strategy on @p node for @p namePrefix namespace
    * @tparam Strategy Class name of the custom strategy
    */
   template<class Strategy>
@@ -88,7 +88,7 @@
   Install(Ptr<Node> node, const Name& namePrefix);
 
   /**
-   * @brief Install a custom strategy on nodes in @p c container for @namePrefix namespace
+   * @brief Install a custom strategy on nodes in @p c container for @p namePrefix namespace
    * @tparam Strategy Class name of the custom strategy
    */
   template<class Strategy>
@@ -96,7 +96,7 @@
   Install(const NodeContainer& c, const Name& namePrefix);
 
   /**
-   * @brief Install a custom strategy on all nodes for @namePrefix namespace
+   * @brief Install a custom strategy on all nodes for @p namePrefix namespace
    * @tparam Strategy Class name of the custom strategy
    */
   template<class Strategy>
@@ -145,4 +145,4 @@
 } // namespace ndn
 } // namespace ns3
 
-#endif // NDN_STRATEGY_CHOICE_HELPER_H
+#endif // NDNSIM_HELPER_NDN_STRATEGY_CHOICE_HELPER_HPP
diff --git a/model/cs/ndn-content-store.hpp b/model/cs/ndn-content-store.hpp
index 36994f8..54c177b 100644
--- a/model/cs/ndn-content-store.hpp
+++ b/model/cs/ndn-content-store.hpp
@@ -115,8 +115,7 @@
   /**
    * \brief Find corresponding CS entry for the given interest
    *
-   * \param interest Interest for which matching content store entry
-   * will be searched
+   * \param interest Interest for which matching content store entry will be searched
    *
    * If an entry is found, it is promoted to the top of most recent
    * used entries index, \see m_contentStore
@@ -126,11 +125,7 @@
 
   /**
    * \brief Add a new content to the content store.
-   *
-   * \param header Fully parsed Data
-   * \param packet Fully formed Ndn packet to add to content store
-   * (will be copied and stripped down of headers)
-   * @returns true if an existing entry was updated, false otherwise
+   * \returns true if an existing entry was updated, false otherwise
    */
   virtual bool
   Add(shared_ptr<const Data> data) = 0;
diff --git a/model/ndn-common.hpp b/model/ndn-common.hpp
index dbb1502..237fc3e 100644
--- a/model/ndn-common.hpp
+++ b/model/ndn-common.hpp
@@ -63,7 +63,10 @@
 using ::ndn::Block;
 using ::ndn::KeyChain;
 
+#ifndef DOXYGEN
+// For python bindings
 namespace nfd = ::nfd;
+#endif // DOXYGEN
 
 } // namespace ndn
 } // namespace ns3
diff --git a/utils/trie/detail/multi-type-container.hpp b/utils/trie/detail/multi-type-container.hpp
index f84f860..5f65aa3 100644
--- a/utils/trie/detail/multi-type-container.hpp
+++ b/utils/trie/detail/multi-type-container.hpp
@@ -81,6 +81,6 @@
 } // ndn
 } // ns3
 
-/// @cond include_hidden
+/// @endcond include_hidden
 
 #endif // MULTI_TYPE_CONTAINER_H_
