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
