Updating documentation
diff --git a/docs/source/helpers.rst b/docs/source/helpers.rst
new file mode 100644
index 0000000..51a3b16
--- /dev/null
+++ b/docs/source/helpers.rst
@@ -0,0 +1,173 @@
+ndnSIM helpers
+==============
+
+Helpers are very important components of ndnSIM, especially for writing simulation scenarios.
+The following summarizes helpers and their basic usage.
+
+CcnxStackHelper
+---------------
+
+:ndnsim:`CcnxStackHelper` is used to install ndnSIM network stack on requested nodes, as well to provide a simple way configure several important parameters of NDN simulation.
+
+Example::
+
+   CcnxStackHelper ccnxHelper;
+   NodeContainer nodes;
+   ...
+   ccnxHelper.Install (nodes);
+
+Forwarding strategy
++++++++++++++++++++
+
+Forwarding strategy parameter **must** be set before installing stack on a node.
+
+  Currently, there are 2 implemented forwarding strategies that can be used in simulations:
+
+  - :ndnsim:`CcnxFloodingStrategy` (default)
+
+      Interests will be forwarded to all available faces available for a route (FIB entry).
+      If there are no available GREEN or YELLOW faces, interests is dropped.
+
+      .. code-block:: c++
+
+         ccnxHelper.SetForwardingStrategy ("ns3::CcnxFloodingStrategy");
+	 ...
+	 ccnxHelper.Install (nodes);
+	 
+      
+
+  - :ndnsim:`CcnxFloodingStrategy` with smart forwarding
+
+      If GREEN face is available, Interest will be sent to the highest-ranked GREEN face. 
+      If not, Interest will be forwarded to all available faces available for a route (FIB entry)/
+      If there are no available GREEN or YELLOW faces, interests is dropped.
+
+      .. code-block:: c++
+
+         Config::SetDefault ("ns3::CcnxFloodingStrategy::SmartFlooding", BooleanValue (true));
+         ccnxHelper.SetForwardingStrategy ("ns3::CcnxFloodingStrategy");
+	 ...
+	 ccnxHelper.Install (nodes);
+
+  - :ndnsim:`CcnxBestRouteStrategy`
+
+      If GREEN face is available, Interest will be sent to the highest-ranked GREEN face.
+      If not, Interest will be forwarded to the highest-ranked YELLOW face.
+      If there are no available GREEN or YELLOW faces, interests is dropped.
+
+      .. code-block:: c++
+
+         ccnxHelper.SetForwardingStrategy ("ns3::CcnxBestRouteStrategy");
+	 ...
+	 ccnxHelper.Install (nodes);
+
+Default routes
+++++++++++++++
+
+.. note::
+   Disabled by default
+
+In simple topologies, like in :doc:`examples <examples>`, or when
+simulating broadcast environment, it is possible to set up *default*
+FIB entries using :ndnsim:`CcnxStackHelper::SetDefaultRoutes` call.
+More specifically, every installed NDN stack will have a FIB entry to ``/`` prefix, containing all available faces.
+
+The following should be done before installing stack on a node:
+
+  .. code-block:: c++
+
+     ccnxHelper.SetDefaultRoutes (true);
+     ...
+     ccnxHelper.Install (nodes);
+
+
+Manually routes
++++++++++++++++
+
+Routes can be configured manually using :ndnsim:`CcnxStackHelper::AddRoute` static methods of :ndnsim:`CcnxStackHelper`.
+
+These routes **should** be created **after** installing NDN stack on a node:
+
+  .. code-block:: c++
+
+     ccnxHelper.Install (nodes);
+     ...
+     Ptr<Node> node = ...     // FIB entry will be added to FIB on this node
+     std::string prefix = ... // some prefix
+     Ptr<CcnxFace> face = ... // NDN face that belongs to the node and through which prefix is accessible
+     int32_t metric = ...     // some routing metric
+     CcnxStackHelper::AddRoute (node, prefix, face, metric);
+
+
+.. Enable optional interest limiting
+.. +++++++++++++++++++++++++++++++++
+
+.. EnableLimits
+
+CcnxGlobalRoutingHelper
+-----------------------
+
+To simplify FIB management in large topologies, ndnSIM contains a global routing controller (:ndnsim:`helper <CcnxGlobalRoutingHelper>` and :ndnsim:`special interface <CcnxGlobalRouter>`), similar in spirit to ``Ipv4GlobalRoutingHelper``.
+
+There are several necessary steps, in order to take advantage of the global routing controller:
+
+* install :ndnsim:`special interfaces <CcnxGlobalRouter>` on nodes
+
+   .. code-block:: c++
+   
+     NodeContainer nodes;
+     ...
+     CcnxGlobalRoutingHelper ccnxGlobalRoutingHelper;
+     ccnxGlobalRoutingHelper.Install (nodes);
+   
+* specify which node exports which prefix using :ndnsim:`CcnxGlobalRoutingHelper::AddOrigins`
+
+   .. code-block:: c++
+   
+     Ptr<Node> producer; // producer node that exports prefix
+     std::string prefix; // exported prefix
+     ...
+     ccnxGlobalRoutingHelper.AddOrigins (prefix, producer);
+   
+* calculate and install FIBs on every node using :ndnsim:`CcnxGlobalRoutingHelper::CalculateRoutes`
+
+   .. code-block:: c++
+   
+     ccnxGlobalRoutingHelper.CalculateRoutes ();
+   
+
+CcnxAppHelper
+---------------
+
+:ndnsim:`CcnxAppHelper` simplifies task of creating, configuring, and installing ndnSIM applications.
+
+
+The basic usage of the :ndnsim:`CcnxAppHelper`:
+
+* Create helper for specific applications class:
+
+   .. code-block:: c++
+
+      // Create helper for the consumer generating Interests with constant rate
+      CcnxAppHelper consumerHelper ("ns3::CcnxConsumerCbr");
+
+* Assign prefix on which application operates (either generating Interests using this name or satisfying Interests for this name) using :ndnsim:`CcnxAppHelper::SetPrefix`:
+
+   .. code-block:: c++
+
+      consumerHelper.SetPrefix (prefix);
+
+* Assign application-specific attributes using :ndnsim:`CcnxAppHelper::SetAttribute`:
+
+   .. code-block:: c++
+
+      // Set frequency parameter
+      consumerHelper.SetAttribute ("Frequency", StringValue ("10")); // 10 interests a second
+
+* Install application on one or more nodes:
+
+   .. code-block:: c++
+
+      NodeContainer nodes;
+      ...
+      consumerHelper.Install (nodes)