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>`_)
