diff --git a/docs/source/faq.rst b/docs/source/faq.rst
index c03e341..c660492 100644
--- a/docs/source/faq.rst
+++ b/docs/source/faq.rst
@@ -4,7 +4,7 @@
 Boost libraries
 ---------------
 
-.. note:: 
+.. note::
     **My ubuntu/redhat/freebsd have an old version of boost libraries.  How can I get the latest one?**
 
 .. _Installing boost libraries:
@@ -14,10 +14,10 @@
 
 .. role:: red
 
-.. note:: 
+.. note::
     **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.52) ot ``/usr/local``, assuming you have a root access to your machine. 
+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 you don't have root access, please refer to section :ref:`Installing boost libraries to a non-privileged location`.
 
 .. note::
@@ -26,9 +26,9 @@
 .. code-block:: bash
    :linenos:
 
-    wget http://downloads.sourceforge.net/project/boost/boost/1.52.0/boost_1_52_0.tar.bz2
-    tar jxf boost_1_52_0.tar.bz2
-    cd boost_1_52_0
+    wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2
+    tar jxf boost_1_53_0.tar.bz2
+    cd boost_1_53_0
     ./bootstrap.sh
     sudo ./b2 --prefix=/usr/local install
 
@@ -51,18 +51,18 @@
 Installing boost libraries to a non-privileged location
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-.. note:: 
+.. note::
     **Follow these general instructions if you are trying to installboost libraries to a non-privileged location** :red:`(i.e., you do not have root access),` **but something is 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.52.0):
+Normally, to compile and install boost libraries in non-privileged mode, you would need to issue following commands (e.g., for boost version 1.53.0):
 
 .. code-block:: bash
    :linenos:
 
     export BOOSTDIR=/home/non-privileged-user/boost
-    wget http://downloads.sourceforge.net/project/boost/boost/1.52.0/boost_1_52_0.tar.bz2
-    tar jxf boost_1_52_0.tar.bz2
-    cd boost_1_52_0
+    wget http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.bz2
+    tar jxf boost_1_53_0.tar.bz2
+    cd boost_1_53_0
     ./bootstrap.sh
     ./b2 --prefix=$BOOSTDIR install
 
@@ -119,7 +119,7 @@
         Waf: Entering directory `/ndnSIM/ns-3/build'
         Could not find a task generator for the name 'ns3-visualizer'..
 
-Something is wrong with your python bindings and python bindings dependencies. 
+Something is wrong with your python bindings and python bindings dependencies.
 Please follow the :ref:`requirements` section that lists what should be installed in order to run visualizer.
 
 Code questions
@@ -143,37 +143,37 @@
     {
       Ptr<ndn::L3Protocol> ndn1 = node1->GetObject<ndn::L3Protocol> ();
       Ptr<ndn::L3Protocol> ndn2 = node2->GetObject<ndn::L3Protocol> ();
-    
+
       // iterate over all faces to find the right one
       for (uint32_t faceId = 0; faceId < ndn1->GetNFaces (); faceId++)
         {
           Ptr<ndn::NetDeviceFace> ndFace = ndn1->GetFace (faceId)->GetObject<ndn::NetDeviceFace> ();
           if (ndFace == 0) continue;
-     
+
           Ptr<PointToPointNetDevice> nd1 = ndFace->GetNetDevice ()->GetObject<PointToPointNetDevice> ();
           if (nd1 == 0) continue;
-     
+
           Ptr<Channel> channel = nd1->GetChannel ();
           if (channel == 0) continue;
-     
+
           Ptr<PointToPointChannel> ppChannel = DynamicCast<PointToPointChannel> (channel);
-     
+
           Ptr<NetDevice> nd2 = ppChannel->GetDevice (0);
           if (nd2->GetNode () == node1)
             nd2 = ppChannel->GetDevice (1);
-     
+
           if (nd2->GetNode () == node2)
             {
               Ptr<ndn::Face> face1 = ndn1->GetFaceByNetDevice (nd1);
               Ptr<ndn::Face> face2 = ndn2->GetFaceByNetDevice (nd2);
-     
+
               face1->SetUp (false);
               face2->SetUp (false);
               break;
             }
         }
     }
-     
+
 
 General questions
 -----------------
diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst
index 698e6d3..ec76405 100644
--- a/docs/source/getting-started.rst
+++ b/docs/source/getting-started.rst
@@ -15,54 +15,83 @@
 
 2. Boost libraries should be installed on the system:
 
-   * For Ubuntu::
+   * For Ubuntu (for Ubuntu 12.10 and later only):
 
-       sudo aptitude install libboost-all-dev
+       .. code-block:: bash
 
-   * For MacOS (macports)::
+           sudo aptitude install libboost-all-dev
 
-       sudo port instal boost
+   * For Fedora (for Fedora 18 and later only):
+
+       .. code-block:: bash
+
+           sudo yum install boost-devel
+
+   * For MacOS (macports):
+
+       .. code-block:: bash
+
+           sudo port instal boost
 
 .. role:: red
 
 .. note::
-   :red:`!!! ndnSIM requires boost version at least 1.48.`   Many linux distribution (including Ubuntu 12.04.1 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>`.
+   :red:`!!! ndnSIM requires boost version at least 1.48.`   Many linux distribution (including Ubuntu 12.04.1 and Fedore 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. 
+   !!! 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.
 
 
 3. 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:
 
-   * For Ubuntu::
+   * For Ubuntu (tested on Ubuntu 12.04.1):
 
-       sudo apt-get install python-dev python-pygraphviz python-kiwi
-       sudo apt-get install python-pygoocanvas python-gnome2
-       sudo apt-get install python-gnomedesktop python-rsvg ipython
+       .. code-block:: bash
 
-   * For MacOS (macports)::
+           sudo apt-get install python-dev python-pygraphviz python-kiwi
+           sudo apt-get install python-pygoocanvas python-gnome2
+           sudo apt-get install python-gnomedesktop python-rsvg ipython
 
-       sudo port install  py27-pygraphviz py27-goocanvas
+   * For Fedora (tested on Fedora 16):
 
-.. py27-kiwi 
+       .. 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
+
+   * For MacOS (macports):
+
+       .. code-block:: bash
+
+           sudo port install  py27-pygraphviz py27-goocanvas
+
+.. py27-kiwi
 
 .. _visualizer: http://www.nsnam.org/wiki/index.php/PyViz
 
 Downloading ndnSIM source
 -------------------------
 
-Download a custom branch of NS-3 that contains all necessary patches and more::
+Download a custom branch of NS-3 that contains all necessary patches and more:
+
+.. code-block:: bash
 
 	mkdir ndnSIM
 	cd ndnSIM
 	git clone git://github.com/cawka/ns-3-dev-ndnSIM.git ns-3
 	git clone git://github.com/cawka/pybindgen.git pybindgen
 
-The first command is to create a directory, which will contain everything NS-3 related.  The bare minimum is just base NS-3 (the first clone above). The second clone gets a module necessary to build python bindings, which are necessary for the visualizer module.  
+The first command is to create a directory, which will contain everything NS-3 related.  The bare minimum is just base NS-3 (the first clone above). The second clone gets a module necessary to build python bindings, which are necessary for the visualizer module.
 
 Finally, clone actual ndnSIM code and place it in src/ folder::
 
+.. code-block:: bash
+
 	git clone git://github.com/NDN-Routing/ndnSIM.git ns-3/src/ndnSIM
 
 There are quite a few modification to the base NS-3 code that 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.
@@ -70,19 +99,25 @@
 Compiling and running ndnSIM
 ----------------------------
 
-ndnSIM uses 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
 
 	cd <ns-3-folder>
 	./waf configure --enable-examples
 	./waf
 
-On MacOS (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
 
 	cd <ns-3-folder>
 	./waf configure --with-python=/opt/local/bin/python2.7 --enable-examples
 	./waf
 
-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
 
 	cd <ns-3-folder>
 	./waf configure --disable-python --enable-examples
@@ -90,19 +125,27 @@
 
 For more configuration options, please refer to ``./waf --help``.
 
-To run :doc:`sample ndnSIM simulations <examples>`::
+To run :doc:`sample ndnSIM simulations <examples>`:
+
+.. code-block:: bash
 
 	./waf --run=ndn-simple
 
-or::
+or:
+
+.. code-block:: bash
 
 	./waf --run=ndn-grid
 
-If you have compiled with python bindings, then you can try to run these simulations with visualizer::
+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::
+or:
+
+.. code-block:: bash
 
 	./waf --run=ndn-grid --vis
 
