diff --git a/docs/FAQ.rst b/docs/FAQ.rst
index 146cbdc..0709ef8 100644
--- a/docs/FAQ.rst
+++ b/docs/FAQ.rst
@@ -191,97 +191,14 @@
 How to start using NDN MacPorts repository on OSX?
 --------------------------------------------------
 
-OSX users have an opportunity to seamlessly install and run NFD and other related
-applications via `MacPorts <https://www.macports.org/>`_. If you are not using MacPorts
-yet, go to `MacPorts website <https://www.macports.org/install.php>`_ and download and
-install the MacPorts package.
-
-NFD and related ports are not part of the official MacPorts repository and in order to use
-it, you need to add NDN MacPorts repository to the local configuration.  In particular,
-you will need to modify the list of source URLs for MacPorts.  For example, if your
-MacPorts are installed in ``/opt/local``, add the following line
-`/opt/local/etc/macports/sources.conf` before or after the default port repository:
-
-::
-
-    rsync://macports.named-data.net/macports/
-
-After this step, you can use ``sudo port selfupdate`` to fetch updated port definitions.
-
-The following command will install NFD using MacPorts:
-
-::
-
-    sudo port install nfd
-
-.. note::
-    You have to have XCode installed on your machine.  For latest versions of OSX (Lion or
-    Mountain Lion) you can install it from AppStore for free, for older versions you have to
-    go to developer.apple.com and download old version of XCode that is appropriate for your
-    system.
-
-
-One of the advantages of using MacPorts is that you can easily upgrade NFD and other
-packages to the most recent version available.  The following commands will do this job:
-
-::
-
-    sudo port selfupdate
-    sudo port upgrade nfd
+Please see :ref:`Install NFD Using the NDN MacPorts Repository on OS X`.
 
 .. _How to start using NDN PPA repository on Ubuntu Linux:
 
 How to start using NDN PPA repository on Ubuntu Linux?
 ------------------------------------------------------
 
-NFD binaries and related tools for Ubuntu 12.04, 13.10, and 14.04 can be installed using
-PPA packages from named-data repository.  First, you will need to add ``named-data/ppa``
-repository to binary package sources and update list of available packages.
-
-Preliminary steps if you haven't used PPA packages before
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-To simplify adding new PPA repositories, Ubuntu provides ``add-apt-repository`` tool, which
-is not installed by default on some platforms.
-
-On Ubuntu **12.04**:
-
-::
-
-    sudo apt-get install python-software-properties
-
-On Ubuntu **13.10** and **14.04**:
-
-::
-
-    sudo apt-get install software-properties-common
-
-
-Adding NDN PPA
-++++++++++++++
-
-After installing ``add-apt-repository``, run the following command to add `NDN PPA repository`_.
-
-::
-
-    sudo add-apt-repository ppa:named-data/ppa
-    sudo apt-get update
-
-Installing NFD and other NDN packages
-+++++++++++++++++++++++++++++++++++++
-
-After you have added `NDN PPA repository`_, NFD and other NDN packages can be easily
-installed in a standard way, i.e., either using ``apt-get`` as shown below or using any
-other package manager, such as Synaptic Package Manager:
-
-::
-
-    sudo apt-get install nfd
-
-For the list of available packages, refer to `NDN PPA repository`_ homepage.
-
-.. _NDN PPA repository: https://launchpad.net/~named-data/+archive/ppa
-
+Please see :ref:`Install NFD Using the NDN PPA Repository on Ubuntu Linux`.
 
 .. _How to start using NDN Overlay on Gentoo Linux:
 
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index dd38f18..e28d227 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -1,27 +1,161 @@
-.. _NFD Installation Instructions:
+Getting Started with NFD
+========================
 
-NFD Installation Instructions
-=============================
+Installing NFD from Binaries
+----------------------------
+
+We provide NFD binaries for the supported platforms, which are the preferred installation
+method. In addition to simplifying installation, the binary release also includes
+automatic initial configuration and platform-specific tools to automatically start NFD and
+related daemons.  In particular, on OS X NFD is controlled using `launchd
+<https://github.com/named-data/NFD/tree/master/contrib/osx-launchd>`__ and on Ubuntu using
+`upstart <https://github.com/named-data/NFD/tree/master/contrib/upstart>`__ mechanisms.
+In both cases, `nfd-start` and `nfd-stop` scripts are convenience wrappers for launchd and
+upstart.
+
+On OS X, NFD can be installed with MacPorts.  Refer to :ref:`Install NFD Using the NDN
+MacPorts Repository on OS X` for more details.
+
+On Ubuntu 12.04, 13.10, or 14.04, NFD can be installed from NDN PPA repository.  Refer to
+:ref:`Install NFD Using the NDN PPA Repository on Ubuntu Linux`.
+
+Future releases could include support for other platforms.  Please send us feedback on the
+platforms you're using, so we can prioritize our goals.  We would also appreciate help
+packaging the current NFD release for other platforms.
+
+
+.. _Install NFD Using the NDN MacPorts Repository on OS X:
+
+Install NFD Using the NDN MacPorts Repository on OS X
+-----------------------------------------------------
+
+OS X users have the opportunity to seamlessly install and run NFD as well as other related
+applications via `MacPorts <https://www.macports.org/>`_.  If you are not using MacPorts
+yet, go to the `MacPorts website <https://www.macports.org/install.php>`_ and install the
+MacPorts package.
+
+NFD and related ports are not part of the official MacPorts repository. In order to use
+these ports, you will need to add the NDN MacPorts repository to your local configuration.
+In particular, you will need to modify the list of source URLs for MacPorts.  For example,
+if your MacPorts are installed in ``/opt/local``, add the following line to
+`/opt/local/etc/macports/sources.conf` before or after the default port repository:
+
+::
+
+    rsync://macports.named-data.net/macports/
+
+After this step, you can use ``sudo port selfupdate`` to fetch updated port definitions.
+
+The following command will install NFD using MacPorts:
+
+::
+
+    sudo port install nfd
+
+.. note::
+
+    You have to have XCode installed on your machine. This can be installed from the
+    AppStore (free) on OS X 10.7 or later. Older editions of OS X can download an
+    appropriate version of XCode from http://developer.apple.com.
+
+
+One advantage of using MacPorts is that you can easily upgrade NFD and other packages to
+the latest version.  The following commands will do this job:
+
+::
+
+    sudo port selfupdate
+    sudo port upgrade nfd
+
+.. _Install NFD Using the NDN PPA Repository on Ubuntu Linux:
+
+Install NFD Using the NDN PPA Repository on Ubuntu Linux
+--------------------------------------------------------
+
+NFD binaries and related tools for Ubuntu 12.04 and 14.04 can be installed using PPA
+packages from named-data repository.  First, you will need to add ``named-data/ppa``
+repository to binary package sources and update list of available packages.
+
+Preliminary steps if you haven't used PPA packages before
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To simplify adding new PPA repositories, Ubuntu provides ``add-apt-repository`` tool,
+which is not installed by default on some platforms.
+
+On Ubuntu **12.04**:
+
+::
+
+    sudo apt-get install python-software-properties
+
+On Ubuntu **14.04**:
+
+::
+
+    sudo apt-get install software-properties-common
+
+
+Adding NDN PPA
+~~~~~~~~~~~~~~
+
+After installing ``add-apt-repository``, run the following command to add `NDN PPA
+repository`_.
+
+::
+
+    sudo add-apt-repository ppa:named-data/ppa
+    sudo apt-get update
+
+Installing NFD and other NDN packages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+After you have added `NDN PPA repository`_, NFD and other NDN packages can be easily
+installed in a standard way, i.e., either using ``apt-get`` as shown below or using any
+other package manager, such as Synaptic Package Manager:
+
+::
+
+    sudo apt-get install nfd
+
+For the list of available packages, refer to `NDN PPA repository`_ homepage.
+
+.. _NDN PPA repository: https://launchpad.net/~named-data/+archive/ppa
+
+Building from Source
+--------------------
+
+Downloading from Git
+~~~~~~~~~~~~~~~~~~~~
+
+The first step is to obtain the source code for ``NFD`` and, its main dependency, the
+``ndn-cxx`` library.  If you are not planning to work with the bleeding edge code, make
+sure you checkout the correct release tag (e.g., ``*-0.2.0``) for both repositories:
+
+::
+
+    # Download ndn-cxx
+
+    git clone https://github.com/named-data/ndn-cxx
+    cd ndn-cxx
+    git checkout ndn-cxx-0.2.0
+
+    cd ..
+
+    # Download NFD
+
+    git clone --recursive https://github.com/named-data/NFD
+    cd NFD
+    git checkout NFD-0.2.0
 
 Prerequisites
--------------
+~~~~~~~~~~~~~
 
--  `ndn-cxx library <https://github.com/named-data/ndn-cxx>`__
-   and its requirements:
-
-   -  ``libcrypto``
-   -  ``libsqlite3``
-   -  ``libcrypto++``
-   -  ``pkg-config``
-   -  Boost libraries (>= 1.48)
-   -  OSX Security framework (on OSX platform only)
-
-   Refer to `Getting started with ndn-cxx <http://named-data.net/doc/ndn-cxx/current/INSTALL.html>`_
-   for detailed installation instructions of the library.
+-  Install the `ndn-cxx library <http://named-data.net/doc/ndn-cxx/current/INSTALL.html>`_
+   and its requirements
 
 -  ``libpcap``
 
-   Comes with base on OS X 10.8 and 10.9:
+   Comes with the base system on OS X 10.8 and 10.9.
 
    On Ubuntu >= 12.04:
 
@@ -35,7 +169,7 @@
 -  ``graphviz``
 -  ``python-sphinx``
 
-   On OS X 10.8 and 10.9 with macports:
+   On OS X 10.8 and 10.9 with MacPorts:
 
    ::
 
@@ -48,10 +182,18 @@
 
        sudo apt-get install doxygen graphviz python-sphinx
 
-Build
------
 
-The following commands should be used to build NFD:
+Besides officially supported platforms, NFD is known to work on: Fedora 20, CentOS 6, Gentoo Linux,
+Raspberry Pi, OpenWRT, FreeBSD 10.0, and several other platforms.  We are soliciting help
+with documenting common problems / pitfalls in installing/using NFD on different platforms
+on `NFD Wiki
+<http://redmine.named-data.net/projects/nfd/wiki/Wiki#Installation-experiences-for-selected-platforms>`__.
+
+
+Build
+~~~~~
+
+The following basic commands should be used to build NFD on Ubuntu:
 
 ::
 
@@ -59,12 +201,10 @@
     ./waf
     sudo ./waf install
 
-Refer to ``./waf --help`` for more options that can be used during ``configure`` stage and
-how to properly configure and run NFD.
+Some platforms, such as OS X with MacPorts and certain Linux distributions (e.g., Fedora)
+require setting the ``PKG_CONFIG_PATH`` before running configure.
 
-In some configurations, configuration step may require small modification. For example, on
-OSX that uses macports (correct the path if macports was not installed in the default path
-``/opt/local``):
+For example, on OS X with MacPorts (assuming the default ``/opt/local`` MacPorts path):
 
 ::
 
@@ -73,7 +213,7 @@
     ./waf
     sudo ./waf install
 
-On some Linux distributions (e.g., Fedora 20):
+or some Linux distributions:
 
 ::
 
@@ -82,8 +222,12 @@
     ./waf
     sudo ./waf install
 
+
+Refer to ``./waf --help`` for more options that can be used during ``configure`` stage and
+how to properly configure and run NFD.
+
 Debug symbols
-+++++++++++++
+~~~~~~~~~~~~~
 
 The default compiler flags enable debug symbols to be included in binaries.  This
 potentially allows more meaningful debugging if NFD or other tools happen to crash.
@@ -99,7 +243,7 @@
     sudo ./waf install
 
 Building documentation
-----------------------
+~~~~~~~~~~~~~~~~~~~~~~
 
 NFD tutorials and API documentation can be built using the following commands:
 
@@ -115,11 +259,128 @@
     ./waf doxgyen
 
 
-Manpages are automatically created and installed during the normal build process
-(e.g., during ``./waf`` and ``./waf install``), if ``python-sphinx`` module is detected
-during ``./waf configure`` stage.  By default, manpages are installed into
+Manpages are automatically created and installed during the normal build process (e.g.,
+during ``./waf`` and ``./waf install``), if ``python-sphinx`` module is detected during
+``./waf configure`` stage.  By default, manpages are installed into
 ``${PREFIX}/share/man`` (where default value for ``PREFIX`` is ``/usr/local``). This
 location can be changed during ``./waf configure`` stage using ``--prefix``,
 ``--datarootdir``, or ``--mandir`` options.
 
 For more details, refer to ``./waf --help``.
+
+
+Initial configuration
+---------------------
+
+.. note::
+    If you have installed NFD from binary packages, the package manager has already
+    installed initial configuration and you can safely skip this section.
+
+General
+~~~~~~~
+
+After installing NFD from source, you need to create a proper config file.  If default
+location for ``./waf configure`` was used, this can be accomplished by simply copying the
+sample configuration file:
+
+::
+
+    sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf
+
+NFD Security
+~~~~~~~~~~~~
+
+NFD provides mechanisms to enable strict authorization for all management commands. In
+particular, one can authorize only specific public keys to create new Faces or change the
+forwarding strategy for specific namespaces. For more information about how to generate
+private/public key pair, generate self-signed certificate, and use this self-signed
+certificate to authorize NFD management commands refer to :ref:`How to configure NFD
+security` FAQ question.
+
+In the sample configuration file, all authorizations are disabled, effectively allowing
+anybody on the local machine to issue NFD management commands. **The sample file is
+intended only for demo purposes and MUST NOT be used in a production environment.**
+
+Running
+-------
+
+**You should not run ndnd or ndnd-tlv, otherwise NFD will not work correctly**
+
+Starting
+~~~~~~~~
+
+In order to use NFD, you need to start two separate daemons: ``nfd`` (the forwarder
+itself) and ``nrd`` (RIB manager that will manage all prefix registrations).  The
+recommended way is to use `nfd-start` script:
+
+::
+
+    nfd-start
+
+On OS X it may ask for your keychain password or ask ``nfd/nrd wants to sign using key in
+your keychain.`` Enter your keychain password and click Always Allow.
+
+Later, you can stop NFD with ``nfd-stop`` or by simply killing the ``nfd`` process.
+
+
+Connecting to remote NFDs
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To create a UDP or TCP tunnel to remote NFD and create route toward it, use the following
+command in terminal:
+
+::
+
+    nfdc register /ndn udp://<other host>
+
+where ``<other host>`` is the name or IP address of the other host (e.g.,
+``udp://spurs.cs.ucla.edu``). This outputs:
+
+::
+
+    Successful in name registration: ControlParameters(Name: /ndn, FaceId: 260, Origin: 255, Cost: 0, Flags: 1, )
+
+The ``/ndn`` means that NFD will forward all Interests that start with ``/ndn`` through
+the face to the other host.  If you only want to forward Interests with a certain prefix,
+use it instead of ``/ndn``.  This only forwards Interests to the other host, but there is
+no "back route" for the other host to forward Interests to you.  For that, you must go to
+the other host and use ``nfdc`` to add the route.
+
+The "back route" can also be automatically configured with ``nfd-autoreg``. For more
+information refer to :doc:`manpages/nfd-autoreg`.
+
+Playing with NFD
+----------------
+
+After you haved installed, configured, and started NFD, you can try to install and play
+with the following:
+
+Sample applications:
+
+-  `Simple examples in ndn-cxx
+   library <http://named-data.net/doc/ndn-cxx/0.2.0/examples.html>`__.
+   If you have installed ndn-cxx from source, you already have compiled
+   these:
+
+   +  examples/producer
+   +  examples/consumer
+   +  examples/consumer-with-timer
+
+   +  tools/ndncatchunks3
+   +  tools/ndnputchunks3
+
+-  `Introductory examples of
+   NDN-CCL <http://redmine.named-data.net/projects/nfd/wiki/Getting_Started_-_Common_Client_Libraries#Install-the-Common-Client-Library>`__
+
+Real applications and libraries:
+
+   + `ndn-tlv-ping - Reachability Testing Tool for NDN
+      <https://github.com/named-data/ndn-tlv-ping>`__
+   +  `ndn-traffic-generator - Traffic Generator For
+      NDN <https://github.com/named-data/ndn-traffic-generator>`__
+   +  `repo-ng - Next generation of NDN
+      repository <https://github.com/named-data/repo-ng>`__
+   +  `ChronoChat - Multi-user NDN chat
+      application <https://github.com/named-data/ChronoChat>`__
+   +  `ChronoSync - Sync library for multiuser realtime applications for
+      NDN <https://github.com/named-data/ChronoSync>`__
diff --git a/docs/getting-started.rst b/docs/getting-started.rst
deleted file mode 100644
index 57d0d57..0000000
--- a/docs/getting-started.rst
+++ /dev/null
@@ -1,169 +0,0 @@
-Getting Started with NFD
-========================
-
-A more recent version of this document may be available on `NFD Wiki
-<http://redmine.named-data.net/projects/nfd/wiki/Getting_Started>`_.
-
-.. toctree::
-   :maxdepth: 2
-
-   INSTALL
-
-Installing
-----------
-
-From source
-~~~~~~~~~~~
-
-To install NFD from source:
-
--  install ``ndn-cxx`` according to `ndn-cxx installation
-   instructions <http://named-data.net/doc/ndn-cxx/0.2.0/INSTALL.html>`__
--  install ``NFD`` according to :doc:`these
-   instructions <INSTALL>`
-
-If downloading code using git, don't forget to checkout the correct
-branch for both ``ndn-cxx`` and ``NFD``
-
-::
-
-    git clone https://github.com/named-data/ndn-cxx
-    cd ndn-cxx
-    git checkout ndn-cxx-0.2.0
-    ...
-    # continue with ndn-cxx installation instructions
-
-    git clone --recursive https://github.com/named-data/NFD
-    cd NFD
-    git checkout NFD-0.2.0
-    ...
-    # continue with NFD installation instructions
-
-From binaries
-~~~~~~~~~~~~~
-
-On OSX, NFD can be installed with MacPorts.  Refer to :ref:`How to start using NDN
-MacPorts repository on OSX` FAQ question for more details.
-
-On Ubuntu 12.04, 13.10, or 14.04, NFD can be installed from NDN PPA repository.  Refer to
-:ref:`How to start using NDN PPA repository on Ubuntu Linux` FAQ question.
-
-
-Initial configuration
----------------------
-
-.. note::
-    If you have installed NFD from binary packages, the package manager has already
-    installed initial configuration and you can safely skip this section.
-
-General
-~~~~~~~
-
-After installing NFD from source, you need to create a proper config file.  If default
-location for ``./waf configure`` was used, this can be accomplished by simply copying the
-sample configuration file:
-
-::
-
-    sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf
-
-NFD Security
-~~~~~~~~~~~~
-
-NFD provides mechanisms to enable strict authorization for all management commands. In
-particular, one can authorize only specific public keys to create new Faces or change the
-forwarding strategy for specific namespaces. For more information about how to generate
-private/public key pair, generate self-signed certificate, and use this self-signed
-certificate to authorize NFD management commands refer to :ref:`How to configure NFD
-security` FAQ question.
-
-In the sample configuration file, all authorizations are disabled, effectively allowing
-anybody on the local machine to issue NFD management commands. **The sample file is
-intended only for demo purposes and MUST NOT be used in a production environment.**
-
-Running
--------
-
-**You should not run ndnd or ndnd-tlv, otherwise NFD will not work
-correctly**
-
-Starting
-~~~~~~~~
-
-In order to use NFD, you need to start two separate daemons: ``nfd`` (the forwarder
-itself) and ``nrd`` (RIB manager that will manage all prefix registrations).  The
-recommended way is to use `nfd-start` script:
-
-::
-
-    nfd-start
-
-On OS X it may ask for your keychain password or ask ``nfd/nrd wants to sign using key in
-your keychain.`` Enter your keychain password and click Always Allow.
-
-Later, you can stop NFD with ``nfd-stop`` or by simply killing the ``nfd`` process.
-
-
-
-Connecting to remote NFDs
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To create a UDP or TCP tunnel to remote NFD and create route toward it,
-use the following command in terminal:
-
-::
-
-    nfdc register /ndn udp://<other host>
-
-where ``<other host>`` is the name or IP address of the other host
-(e.g., ``udp://spurs.cs.ucla.edu``). This outputs:
-
-::
-
-    Successful in name registration: ControlParameters(Name: /ndn, FaceId: 10, Origin: 0, Cost: 0, Flags: 1, ExpirationPeriod: 3600000 milliseconds, )
-
-The ``/ndn`` means that NFD will forward all Interests that start with ``/ndn`` through
-the face to the other host.  If you only want to forward Interests with a certain prefix,
-use it instead of ``/ndn``.  This only forwards Interests to the other host, but there is
-no "back route" for the other host to forward Interests to you.  For that, you must go to
-the other host and use ``nfdc`` to add the route.
-
-The "back route" can also be automatically configured with ``nfd-autoreg``. For more
-information refer to `nfd-autoreg manpage
-<http://named-data.net/doc/NFD/current/manpages/nfd-autoreg.html>`_.
-
-Playing with NFD
-----------------
-
-After you installed, configured, and started NFD, you can try to install
-and play with the following:
-
-Sample applications:
-
--  `Simple examples in ndn-cxx
-   library <http://named-data.net/doc/ndn-cxx/0.2.0/examples.html>`__.
-   If you have installed ndn-cxx from source, you already have compiled
-   these:
-
-   +  examples/producer
-   +  examples/consumer
-   +  examples/consumer-with-timer
-
-   +  tools/ndncatchunks3
-   +  tools/ndnputchunks3
-
--  `Introductory examples of
-   NDN-CCL <http://redmine.named-data.net/projects/nfd/wiki/Getting_Started_-_Common_Client_Libraries#Install-the-Common-Client-Library>`__
-
-Real applications and libraries:
-
-   +  `ndn-tlv-ping - Ping Application For
-      NDN <https://github.com/named-data/ndn-tlv-ping>`__
-   +  `ndn-traffic-generator - Traffic Generator For
-      NDN <https://github.com/named-data/ndn-traffic-generator>`__
-   +  `repo-ng - Next generation of NDN
-      repository <https://github.com/named-data/repo-ng>`__
-   +  `ChronoChat - Multi-user NDN chat
-      application <https://github.com/named-data/ChronoChat>`__
-   +  `ChronoSync - Sync library for multiuser realtime applications for
-      NDN <https://github.com/named-data/ChronoSync>`__
diff --git a/docs/index.rst b/docs/index.rst
index 45f126a..74f568d 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -13,41 +13,43 @@
    :hidden:
    :maxdepth: 3
 
-   README
-   getting-started
+   overview
+   INSTALL
    FAQ
    manpages
 
-..
-   INSTALL
+* :doc:`overview`
 
-* :doc:`README`
+  A brief overview of NFD and its major modules.
 
-* :doc:`getting-started`
+* :doc:`INSTALL`
+
+  Instructions for obtaining, installing, and running NFD.
 
 * :doc:`FAQ`
 
+  Suggestions for configuring and running non-standard NFD setups.
+
 * :doc:`manpages`
 
 **Additional documentation**
 
 * `NFD Developer's Guide <http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_
 
+  A comprehensive guide to the design and implementation of NFD. The developer's guide also contains
+  suggestions and hints for anyone wanting to modify or extend NFD.
+
 * `NFD Wiki <http://redmine.named-data.net/projects/nfd/wiki>`_
 
   + `NFD Management protocol <http://redmine.named-data.net/projects/nfd/wiki/Management>`_
   + `NFD Configuration file format <http://redmine.named-data.net/projects/nfd/wiki/ConfigFileFormat>`_
 
-* `API documentation (doxygen) <doxygen/annotated.html>`_
+  The NFD Wiki contains detailed protocol specifications and
+  information for building on unsupported platforms.
 
-Downloading
------------
+* `API Documentation (doxygen) <doxygen/annotated.html>`_
 
-* `Source code GitHub git repository <https://github.com/named-data/NFD>`_.
-
-* :ref:`MacPorts NDN repository <How to start using NDN MacPorts repository on OSX>`
-
-* :ref:`Ubuntu NDN PPA repository <How to start using NDN PPA repository on Ubuntu Linux>`
+* `Release Notes <RELEASE_NOTES.html>`_
 
 License
 -------
diff --git a/docs/README.rst b/docs/overview.rst
similarity index 100%
rename from docs/README.rst
rename to docs/overview.rst
