diff --git a/docs/ns3_html_theme/static/ns3_stylesheet.css b/docs/ns3_html_theme/static/ns3_stylesheet.css
index 1c2a4fc..0ab405d 100644
--- a/docs/ns3_html_theme/static/ns3_stylesheet.css
+++ b/docs/ns3_html_theme/static/ns3_stylesheet.css
@@ -1,11 +1,14 @@
 /* ns-3 changes to the default CSS from Doxygen and Sphinx */
 
-body, table, div, p, dl {
+body {
     font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
-    font-size: 12pt;
+    font-size: 11pt;
     color: black;
 }
 
+table, div, p, dl {
+}
+
 a {
     color: #91A501;
     font-weight: bold;
@@ -28,7 +31,7 @@
 
 /* Doxygen side bar */
 #nav-tree {
-    font-size: 12pt;
+    font-size: 10pt;
 }
 
 #nav-tree a {
@@ -46,7 +49,7 @@
 
 div.related a {
     color: #91A501;
-    font-size: 14pt;
+    font-size: 13pt;
     font-weight: bold;
 }
 
@@ -66,7 +69,7 @@
 
 /* Sphinx side bar */
 div.sphinxsidebar {
-    font-size: 12pt;
+    font-size: 10pt;
 }
 
 div.sphinxsidebar a {
@@ -130,6 +133,10 @@
 	background-color: #FFFF88;
 }
 
+.highlighttable {
+    font-size: 9pt;
+}
+
 .red {
     color: red;
     font-weight: bold;
diff --git a/docs/source/_static/ndnsim-components.pdf b/docs/source/_static/ndnsim-components.pdf
new file mode 100644
index 0000000..d940bf9
--- /dev/null
+++ b/docs/source/_static/ndnsim-components.pdf
Binary files differ
diff --git a/docs/source/_static/ndnsim-components.png b/docs/source/_static/ndnsim-components.png
new file mode 100644
index 0000000..1601f19
--- /dev/null
+++ b/docs/source/_static/ndnsim-components.png
Binary files differ
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 2be118d..1d60617 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -48,7 +48,7 @@
 # built documents.
 #
 # The short X.Y version.
-version = '0.2.8'
+version = '0.5'
 # The full version, including alpha/beta/rc tags.
 release = 'Overall ndnSIM'
 
@@ -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 = [
-  ('index', 'ndnSIM.tex', u'ndnSIM: 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, Ilya Moiseenko, and Lixia Zhang', 'manual'),
 ]
 
@@ -251,6 +251,6 @@
 
 googleanalytics_enabled = True
 
-# aafig_format = dict(latex='pdf', html='png', text=None)
+aafig_format = dict(latex='pdf', html='svg', text=None)
 
 # aafig_default_options = dict(Fixed=True)
diff --git a/docs/source/examples.rst b/docs/source/examples.rst
index 41142c9..4fb13d0 100644
--- a/docs/source/examples.rst
+++ b/docs/source/examples.rst
@@ -14,20 +14,22 @@
 Simple scenario
 ---------------
 
+.. sidebar:: Topology
+
+    .. aafig::
+        :aspect: 60
+        :scale: 90
+
+          +----------+                +--------+                +----------+
+          |          |     1Mbps      |        |      1Mbps     |          |
+          | Consumer |<-------------->| Router |<-------------->| Producer |
+          |          |         10ms   |        |         10ms   |          |
+          +----------+                +--------+                +----------+
+
 The first example (``ndn-simple.cc``) shows very basics of ndnSIM.  In the simulated
 topology there are 3 nodes, connected with point-to-point links, one
 NDN consumer, and one NDN producer:
 
-.. aafig::
-    :aspect: 60
-    :scale: 120
-
-      +----------+                +--------+                +----------+
-      |          |     1Mbps      |        |      1Mbps     |          |
-      | Consumer |<-------------->| Router |<-------------->| Producer |
-      |          |         10ms   |        |         10ms   |          |
-      +----------+                +--------+                +----------+
-
 Consumer is simulated using :ndnsim:`ConsumerCbr` reference application and generates Interests towards the producer
 with frequency of 10 Interests per second (see :doc:`applications`).
 
@@ -57,29 +59,30 @@
 9-node grid example
 -------------------
 
+.. sidebar:: Topology
+
+    .. aafig::
+        :aspect: 60
+        :scale: 120
+
+        /--------\      /-\         /-\
+        |Consumer|<---->| |<------->| |
+        \--------/      \-/         \-/
+            ^            ^           ^
+            |            |           |   1Mbps/10ms delay
+            v            v           v
+           /-\          /-\         /-\
+           | |<-------->| |<------->| |
+           \-/          \-/         \-/
+            ^            ^           ^
+            |            |           |
+            v            v           v
+           /-\          /-\      /--------\
+           | |<-------->| |<---->|Producer|
+           \-/          \-/      \--------/
+
 This scenario (``ndn-grid.cc``) simulates a grid topology, which is constructed using PointToPointLayout NS-3 module
 
-.. aafig::
-    :aspect: 60
-    :scale: 120
-
-    /--------\	    /-\	        /-\
-    |Consumer|<---->| |<------->| |
-    \--------/	    \-/	        \-/
-	^   	     ^ 	         ^
-        |            |           |   1Mbps/10ms delay
-        v            v           v
-       /-\          /-\         /-\
-       | |<-------->| |<------->| |
-       \-/          \-/         \-/
-	^   	     ^ 	         ^
-        |            |           |
-        v            v           v
-       /-\	    /-\	     /--------\
-       | |<-------->| |<---->|Producer|
-       \-/          \-/      \--------/
-
-
 FIB is populated using :ndnsim:`GlobalRoutingHelper` (see :doc:`helpers`).
 
 Consumer is simulated using :ndnsim:`ConsumerCbr` reference application and generates Interests towards the producer
@@ -109,6 +112,28 @@
 9-node grid example using topology plugin
 -----------------------------------------
 
+.. sidebar:: Topology
+
+    .. aafig::
+        :aspect: 60
+        :scale: 120
+
+        /--------\      /-\         /-\
+        |Consumer|<---->| |<------->| |
+        \--------/      \-/         \-/
+            ^            ^           ^
+            |            |           |   1Mbps/10ms delay
+            v            v           v
+           /-\          /-\         /-\
+           | |<-------->| |<------->| |
+           \-/          \-/         \-/
+            ^            ^           ^
+            |            |           |
+            v            v           v
+           /-\          /-\      /--------\
+           | |<-------->| |<---->|Producer|
+           \-/          \-/      \--------/
+
 Instead of defining topology directly as in :ref:`simple-scenario` or using specialized helpers as in :ref:`9-node-grid-example`, ndnSIM provides experimental extended versions of TopologyReader classes: :ndnsim:`AnnotatedTopologyReader` and :ndnsim:`RocketfuelWeightsReader`.
 
 While :ndnsim:`RocketfuelWeightsReader` is a specialized version intended to be used with `Rocketfuel <http://www.cs.washington.edu/research/networking/rocketfuel/>`_ topology and link weights files (examples will be provided later), :ndnsim:`AnnotatedTopologyReader` is a more general-use class that uses simple user-readable format.
@@ -124,26 +149,6 @@
 
 This scenario (``ndn-grid-topo-plugin.cc``) duplicates the functionality of :ref:`9-node-grid-example` but with the use of :ndnsim:`AnnotatedTopologyReader`.
 
-.. aafig::
-    :aspect: 60
-    :scale: 120
-
-    /--------\	    /-\	        /-\
-    |Consumer|<---->| |<------->| |
-    \--------/	    \-/	        \-/
-	^   	     ^ 	         ^
-        |            |           |   1Mbps/10ms delay
-        v            v           v
-       /-\          /-\         /-\
-       | |<-------->| |<------->| |
-       \-/          \-/         \-/
-	^   	     ^ 	         ^
-        |            |           |
-        v            v           v
-       /-\	    /-\	     /--------\
-       | |<-------->| |<---->|Producer|
-       \-/          \-/      \--------/
-
 .. literalinclude:: ../../examples/ndn-grid-topo-plugin.cc
    :language: c++
    :linenos:
@@ -170,24 +175,26 @@
 6-node bottleneck topology
 --------------------------
 
+.. sidebar:: Topology
+
+    .. aafig::
+        :aspect: 60
+        :scale: 90
+
+        /------\                                                    /------\
+        | Src1 |<--+                                            +-->| Dst1 |
+        \------/    \                                          /    \------/
+                     \                                        /
+                      +-->/------\   "bottleneck"  /------\<-+
+                          | Rtr1 |<===============>| Rtr2 |
+                      +-->\------/                 \------/<-+
+                     /                                        \
+        /------\    /                                          \    /------\
+        | Src2 |<--+                                            +-->| Dst2 |
+        \------/                                                    \------/
+
 This scenario (``ndn-congestion-topo-plugin.cc``) can be used for congestion-related scenarios
 
-.. aafig::
-    :aspect: 60
-    :scale: 120
-
-    /------\	                                                /------\
-    | Src1 |<--+                                            +-->| Dst1 |
-    \------/    \                                          /    \------/
-	     	 \                                        /
-                  +-->/------\   "bottleneck"  /------\<-+
-                      | Rtr1 |<===============>| Rtr2 |
-                  +-->\------/                 \------/<-+
-                 /                                        \
-    /------\    /                                          \    /------\
-    | Src2 |<--+                                            +-->| Dst2 |
-    \------/                                                    \------/
-
 .. literalinclude:: ../../examples/topologies/topo-6-node.txt
     :language: bash
     :linenos:
@@ -214,6 +221,37 @@
 11-node 2-bottleneck topology with custom forwarding strategy
 -------------------------------------------------------------
 
+.. sidebar:: Topology
+
+    .. aafig::
+        :aspect: 60
+        :scale: 90
+
+         /------\ 0                                                 0 /------\
+         |  c1  |<-----+                                       +----->|  p1  |
+         \------/       \                                     /       \------/
+                         \              /-----\              /
+         /------\ 0       \         +==>| r12 |<==+         /       0 /------\
+         |  c2  |<--+      \       /    \-----/    \       /      +-->|  p2  |
+         \------/    \      \     |                 |     /      /    \------/
+                      \      |    |   1Mbps links   |    |      /
+                       \  1  v0   v5               1v   2v  3  /
+                        +->/------\                 /------\<-+
+                          2|  r1  |<===============>|  r2  |4
+                        +->\------/4               0\------/<-+
+                       /    3^                           ^5    \
+                      /      |                           |      \
+         /------\ 0  /      /                             \      \  0 /------\
+         |  c3  |<--+      /                               \      +-->|  p3  |
+         \------/         /                                 \         \------/
+                         /     "All consumer-router and"     \
+         /------\ 0     /      "router-producer links are"    \    0 /------\
+         |  c4  |<-----+       "10Mbps"                        +---->|  p4  |
+         \------/                                                    \------/
+
+         "Numbers near nodes denote face IDs. Face ID is assigned based on the order of link"
+         "definitions in the topology file"
+
 To effectively use the example :ref:`custom strategy <Writing your own custom strategy>`, we need to make sure that FIB entries contain at least two entries.
 In the current version of ndnSIM, this can be accomplished using manual route configuration.
 
@@ -221,34 +259,6 @@
 
 Let us first define a meaningful topology:
 
-.. aafig::
-    :aspect: 60
-    :scale: 120
-
-     /------\ 0                                                 0 /------\
-     |  c1  |<-----+                                       +----->|  p1  |
-     \------/       \                                     /       \------/
-                     \              /-----\              /
-     /------\ 0       \         +==>| r12 |<==+         /       0 /------\
-     |  c2  |<--+      \       /    \-----/    \       /      +-->|  p2  |
-     \------/    \      \     |                 |     /      /    \------/
-                  \      |    |   1Mbps links   |    |      /
-                   \  1  v0   v5               1v   2v  3  /
-                    +->/------\                 /------\<-+
-                      2|  r1  |<===============>|  r2  |4
-                    +->\------/4               0\------/<-+
-                   /    3^                           ^5    \
-                  /      |                           |      \
-     /------\ 0  /      /                             \      \  0 /------\
-     |  c3  |<--+      /                               \      +-->|  p3  |
-     \------/         /                                 \         \------/
-                     /     "All consumer-router and"     \
-     /------\ 0     /      "router-producer links are"    \    0 /------\
-     |  c4  |<-----+       "10Mbps"                        +---->|  p4  |
-     \------/                                                    \------/
-
-     "Numbers near nodes denote face IDs. Face ID is assigned based on the order of link"
-     "definitions in the topology file"
 
 The corresponding topology file (``topo-11-node-two-bottlenecks.txt``):
 
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index b39f211..eb001fa 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -1,13 +1,15 @@
 .. ndnSIM: NS-3 based NDN simulator
 .. ============================================================
 
-.. .. toctree::
-..    :maxdepth: 2
-
 ============
 Introduction
 ============
 
+.. sidebar:: ndnSIM components
+
+    .. image:: _static/ndnsim-components.*
+        :width: 100%
+
 The ndnSIM is NS-3 module that implements Named Data Networking (NDN) communication model, the clean slate Internet design. ndnSIM is specially optimized for simulation purposes and has a cleaner and more extensible internal structure comparing to the existing NDN implementation (NDNx).
 
 Following the NDN architecture, ndnSIM is implemented as a new network-layer protocol model, which can run on top of any available link-layer protocol model (point-to-point, CSMA, wireless, etc.).
@@ -22,43 +24,6 @@
 This modular structure allows any component to be easily modified or replaced with no or minimal impact on other components.
 In addition, the simulator provides an extensive collection of interfaces and helpers to perform detailed tracing behavior of every component, as well as NDN traffic flow.
 
-
-.. aafig::
-    :aspect: 60
-    :scale: 120
-
-             +----------------+			      +-----------+
-             | "Applications" |			      | NetDevice |
-             +----------------+			      +-----------+
-		     ^ 					    ^
-    .................|......................................|......................
-    .		     v			     	            v			  .
-    .         +----------------------+	     +----------------------+		  .
-    .         |      "Face"          |	     |        "Face"        |		  .
-    .         | "(AppFace, ApiFace)" |       |   "(NetDeviceFace)"  |		  .
-    .         +----------------------+       +----------------------+		  .
-    .		               ^                   ^				  .
-    .			       |                   |				  .
-    .			       v                   v				  .
-    .			    XXXXXXXXXXXXXXXXXXXXXXXXXXXXX			  .
-    .			    XX                         XX			  .
-    .			    XX    Core NDN protocol    XX  			  .
-    .                       XX      "(L3Protocol)"     XX
-    .			    XX                         XX			  .
-    .			    XXXXXXXXXXXXXXXXXXXXXXXXXXXXX			  .
-    .			      ^       ^       ^       ^				  .
-    .			      |	      |	      |	      |				  .
-    .     +-------------------+   +---+       +---+   +------------+		  .
-    .	  | 		    	  |		  |    		   |		  .
-    .	  v			  v		  v		   v		  .
-    . +-------------------+      +-------+      +-------+        +-------------+  .
-    . |   "ContentStore"  |      |  PIT  |      |  FIB  |        | "Forwarding"|  .
-    . +-------------------+      +-------+      +-------+        | "Strategy"  |  .
-    .							         +-------------+  .
-    .										  .
-    ...............................................................................
-
-
 The current wire format for the Interest and Data packets used by ndnSIM is defined in :ref:`ndnSIM packet format`.
 ndnSIM also has an option to be compatible to wire format used by `NDNx implementation <http://named-data.net/>`_ (NDNx binary XML encoding).  However currently, this option is deprecated, but can be reintroduced in the future as an optional wire format.
 
diff --git a/docs/source/metric.rst b/docs/source/metric.rst
index 6b86e9f..ba65d8d 100644
--- a/docs/source/metric.rst
+++ b/docs/source/metric.rst
@@ -45,7 +45,7 @@
         ...
 
 - :ndnsim:`L2Tracer`
- 
+
     This tracer is similar in spirit to :ndnsim:`ndn::L3RateTracer`, but it currently traces only packet drop on layer 2 (e.g.,
     due to transmission queue overflow).
 
@@ -75,32 +75,34 @@
 
 In this scenario we will use a tree-like topology, where consumers are installed on leaf nodes and producer is in the root of the tree:
 
-.. aafig::
-    :aspect: 60
-    :scale: 120
+.. sidebar:: Topology
 
-     /--------\    /--------\    /--------\    /--------\
-     |"leaf-1"|    |"leaf-2"|    |"leaf-3"|    |"leaf-4"|
-     \--------/    \--------/    \--------/    \--------/
-           ^          ^                ^           ^
-           |          |                |           |
-      	    \        /                  \         /
-             \      /  			 \  	 /    10Mbps / 1ms
-              \    /  			  \ 	/
-               |  |  			   |   |
-      	       v  v                        v   v
-	    /-------\                    /-------\
-	    |"rtr-1"|                    |"rtr-2"|
-            \-------/                    \-------/
-                  ^                        ^
-		  |	 		   |
-		   \			  /  10 Mpbs / 1ms
-		    +--------\  /--------+
-			     |  |
-                             v  v
-			  /--------\
-			  | "root" |
-                          \--------/
+    .. aafig::
+        :aspect: 60
+        :scale: 100
+
+         /--------\    /--------\    /--------\    /--------\
+         |"leaf-1"|    |"leaf-2"|    |"leaf-3"|    |"leaf-4"|
+         \--------/    \--------/    \--------/    \--------/
+               ^          ^                ^           ^
+               |          |                |           |
+                \        /                  \         /
+                 \      /                    \       /    10Mbps / 1ms
+                  \    /                      \     /
+                   |  |                        |   |
+                   v  v                        v   v
+                /-------\                    /-------\
+                |"rtr-1"|                    |"rtr-2"|
+                \-------/                    \-------/
+                      ^                        ^
+                      |                        |
+                       \                      /  10 Mpbs / 1ms
+                        +--------\  /--------+
+                                 |  |
+                                 v  v
+                              /--------\
+                              | "root" |
+                              \--------/
 
 The corresponding topology file (``topo-tree.txt``):
 
@@ -123,15 +125,13 @@
 
 The successful run will create ``rate-trace.txt`` and ``aggregate-trace.txt`` files in the current directly, which can be analyzed manually or used as input to some graph/stats packages.
 
-For example, the following `R script <http://www.r-project.org/>`_ will build a number of nice graphs:
+.. sidebar:: Graph build using the `R script <http://www.r-project.org/>`_
 
-.. image:: _static/root-rates.png
-    :alt: Interest/Data packet rates at the root node
-    :align: right
+    .. image:: _static/root-rates.png
+        :alt: Interest/Data packet rates at the root node
 
-.. image:: _static/root-5sec-counts.png
-    :alt: Interest/Data packet counts at the root node in 5-second intervals
-    :align: right
+    .. image:: _static/root-5sec-counts.png
+        :alt: Interest/Data packet counts at the root node in 5-second intervals
 
 .. literalinclude:: ../../examples/graphs/rate-graph.R
     :language: r
@@ -144,15 +144,14 @@
 Example of packet drop tracer (L2Tracer)
 ----------------------------------------
 
+.. sidebar:: Topology
+
+    .. image:: _static/topo-tree-25-node.png
+        :alt: 25-node tree topology
+        :width: 550px
+
 This example (``ndn-tree-with-l2tracer.cc``) demonstrates basic usage of :ref:`trace classes`.
 
-In this scenario we will use a tree-like topology:
-
-.. image:: _static/topo-tree-25-node.png
-    :alt: 25-node tree topology
-    :width: 600px
-    :align: right
-
 The corresponding topology file (``topo-tree-25-node.txt``):
 
 .. literalinclude:: ../../examples/topologies/topo-tree-25-node.txt
diff --git a/docs/source/ndnsim-research-papers.rst b/docs/source/ndnsim-research-papers.rst
index d619e36..b84638f 100644
--- a/docs/source/ndnsim-research-papers.rst
+++ b/docs/source/ndnsim-research-papers.rst
@@ -43,7 +43,7 @@
 
 - **M. Vahlenkamp, "Threats on Information-Centric Networking", Hamburg University of Applied Sciences, Technical Report, 2012.** (`PDF <http://inet.cpt.haw-hamburg.de/teaching/ws-2012-13/master-projekt/markus-vahlenkamp_seminar.pdf>`_)
 
-    The ICN approach aims for reﬂecting these changes in usage of the Internet and is thus dragging content awareness into the network, for instance to let the network itself decide where to acquire requested data from and thereby utilize content caches to increase the data dissemination efﬁciency. All this is backed by the use of the publish/subscribe paradigm that is utilised to announce content availability and request its delivery. Since the ICN paradigm is entirely different from todays Internet, new challenges arise within the area of network security. NDN/CCNx, as the most popular ICN approach, claims to solve a couple of different security ﬂaws which the actual Internet is suffering from. This raises the questions of which vulnerabilities still exist and if maybe new issues arise.
+    The ICN approach aims for reflecting these changes in usage of the Internet and is thus dragging content awareness into the network, for instance to let the network itself decide where to acquire requested data from and thereby utilize content caches to increase the data dissemination efficiency. All this is backed by the use of the publish/subscribe paradigm that is utilised to announce content availability and request its delivery. Since the ICN paradigm is entirely different from todays Internet, new challenges arise within the area of network security. NDN/CCNx, as the most popular ICN approach, claims to solve a couple of different security flaws which the actual Internet is suffering from. This raises the questions of which vulnerabilities still exist and if maybe new issues arise.
 
 - **C. Yi, A. Afanasyev, I. Moiseenko, L. Wang, B. Zhang, and L. Zhang, "A Case for Stateful Forwarding Plane," Computer Communications, vol. 36, no. 7, pp. 779–791, 2013. ISSN 0140-3664** (`PDF <http://lasr.cs.ucla.edu/afanasyev/data/files/Yi/comcom-stateful-forwarding.pdf>`_, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/380>`_, `simulation code <https://github.com/cawka/ndnSIM-comcom-stateful-fw>`_)
 
@@ -65,29 +65,29 @@
 
 - **B. Zhou, C. Wu, X. Hong, and M. Jiang, "Algorithms for Distributed Programmable Controllers", Technical Report, March 2013.** (`PDF <http://hong.cs.ua.edu/DCP-techReport-March2013.pdf>`_)
 
-    A few works on SDN (Software-Deﬁned Networking) like those in Onix improve programmability of the distributed network control.
-    The asynchronism and Byzantine issues of the control challenge the re-conﬁgurability of the service that is to safely program the control in atomic so as to avoid the transient control issues like the routing loops and black holes.
-    We propose two important algorithms of the distributed control to enable the programmability: (1) the reconﬁguration primitive allows the network control of the services being able to safely react to an external event; and (2) the reuse primitive allows the control states of a service being accessible for all services. We give concepts and algorithms of two primitives.
-    In addition, we provide the concrete cases of the current approaches for ICN (Information-Centric Networking) and CDN (Content Distribution Networks) for quests of the reconﬁgurability and programmability.
+    A few works on SDN (Software-Defined Networking) like those in Onix improve programmability of the distributed network control.
+    The asynchronism and Byzantine issues of the control challenge the re-configurability of the service that is to safely program the control in atomic so as to avoid the transient control issues like the routing loops and black holes.
+    We propose two important algorithms of the distributed control to enable the programmability: (1) the reconfiguration primitive allows the network control of the services being able to safely react to an external event; and (2) the reuse primitive allows the control states of a service being accessible for all services. We give concepts and algorithms of two primitives.
+    In addition, we provide the concrete cases of the current approaches for ICN (Information-Centric Networking) and CDN (Content Distribution Networks) for quests of the reconfigurability and programmability.
     Then, we evaluate the performance of ICN in both simulation and the PlanetLab testbed.
     The evaluation results show that the layer improves the lowers 19.6% of the Interest delays in the ICN that is heavily congested and lowers 97% delays in the PlanetLab with 9 nodes on usual case.
     In addition, the evaluation of CDN on the PlanetLab shows that it reduces 81% request delay on usual case.
 
 - **M. Tortelli, L. A. Grieco, and G. Boggia, "Performance Assessment of Routing Strategies in Named Data Networking", in Proc. of GTTI 2013 Session on Telecommunication Networks, 2013** (`PDF <http://www.gtti.it/GTTI13/papers/Tortelli_et_al_GTTI2013.pdf>`_)
 
-    Information Centric Networking (ICN) architectures are currently being investigated to orient the Future Internet towards a content centric paradigm, thus allowing the provisioning of more secure, efﬁcient, and scalable services.
+    Information Centric Networking (ICN) architectures are currently being investigated to orient the Future Internet towards a content centric paradigm, thus allowing the provisioning of more secure, efficient, and scalable services.
     In this work, we focus on the Named Data Networking (NDN) proposal to analyze the impact of several routing and forwarding strategies, which play a fundamental role in ICN.
     In particular, thanks to the recently devised ns-3 based NDN simulator, namely ndnSIM, we conduce an extensive simulation campaign using the GEANT topology as a core network.
-    We monitor different distinctive metrics, such as ﬁle download time, server load reduction, hit ratio, hit distance, and communication overhead, in different topologies and trafﬁc conditions.
-    Simulation results show that the election of a single best forwarding strategy is a difﬁcult task.
-    Indeed, the pros and cons of each strategy are heavily inﬂuenced by the popularity distribution of contents, which, in turn, affects the effectiveness of the distributed caching mechanisms typically used in the NDN architecture.
+    We monitor different distinctive metrics, such as file download time, server load reduction, hit ratio, hit distance, and communication overhead, in different topologies and traffic conditions.
+    Simulation results show that the election of a single best forwarding strategy is a difficult task.
+    Indeed, the pros and cons of each strategy are heavily influenced by the popularity distribution of contents, which, in turn, affects the effectiveness of the distributed caching mechanisms typically used in the NDN architecture.
 
 - **S. Seo, J.-M. Kang, A. Leon-Garcia, Y. Han, and J. W.-K. Hong, "Secure and Efficient Context Data Collection using Content-Centric Networking", in Proc. of International Workshop on Smart Communication Protocols and Algorithms (SCPA), 2013** (`PDF <http://dpnm.postech.ac.kr/papers/SCPA/13/sesise/scpa13.pdf>`_)
 
     Context data collection is a fundamental and important process for realizing context-aware recommender or personalization systems.
     The existing context data collection approaches are based-on traditional TCP/IP that has several disadvantages such as lack of mobility and security.
-    On the other hand, Content-Centric Networking (CCN) provides advantages in terms of mobility, security, and bandwidth efﬁciency compared to TCP/IP.
-    In this paper, we propose a secure and efﬁcient context data collection and provision approach based on CCN.
+    On the other hand, Content-Centric Networking (CCN) provides advantages in terms of mobility, security, and bandwidth efficiency compared to TCP/IP.
+    In this paper, we propose a secure and efficient context data collection and provision approach based on CCN.
     Simulation results show that this approach can reduce bandwidth consumption by 52.7%–98.9% in comparison to a TCP/IP-based one.
 
 - **J. Ran, N. Lv, D. Zhang, Y. Ma, and Z. Xie, "On Performance of Cache Policies in Named Data Networking", in International Conference on Advanced Computer Science and Electronics Information (ICACSEI 2013), 2013** (`PDF <http://www.atlantis-press.com/php/download_paper.php?id=7640>`_)
diff --git a/model/fib/ndn-fib.h b/model/fib/ndn-fib.h
index b5e8e40..f088515 100644
--- a/model/fib/ndn-fib.h
+++ b/model/fib/ndn-fib.h
@@ -85,8 +85,6 @@
    *
    * If the entry exists, metric will be updated. Otherwise, new entry will be created
    *
-   * Entries in FIB never deleted. They can be invalidated with metric==NETWORK_UNREACHABLE
-   *
    * @param name	Prefix
    * @param face	Forwarding face
    * @param metric	Routing metric
@@ -99,8 +97,6 @@
    *
    * If the entry exists, metric will be updated. Otherwise, new entry will be created
    *
-   * Entries in FIB never deleted. They can be invalidated with metric==NETWORK_UNREACHABLE
-   *
    * @param name	Smart pointer to prefix
    * @param face	Forwarding face
    * @param metric	Routing metric
@@ -119,15 +115,6 @@
   virtual void
   Remove (const Ptr<const Name> &prefix) = 0;
 
-  // /**
-  //  * @brief Invalidate FIB entry ("Safe" version of Remove)
-  //  *
-  //  * All faces for the entry will be assigned maximum routing metric and NDN_FIB_RED status   
-  //  * @param name	Smart pointer to prefix
-  //  */
-  // virtual void
-  // Invalidate (const Ptr<const Name> &prefix) = 0;
-
   /**
    * @brief Invalidate all FIB entries
    */
