diff --git a/examples/graphs/drop-graph.R b/examples/graphs/drop-graph.R
index 0f28f6e..bb04161 100755
--- a/examples/graphs/drop-graph.R
+++ b/examples/graphs/drop-graph.R
@@ -1,30 +1,30 @@
 #!/usr/bin/env Rscript
-# Copyright (c) 2012-2013  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+# Copyright (c) 2012-2015  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
 
 
 # install.packages ('ggplot2')
-library (ggplot2)
+library(ggplot2)
 ## # install.packages ('scales')
 ## library (scales)
 
 #########################
 # Rate trace processing #
 #########################
-data = read.table ("drop-trace.txt", header=T)
-data$Node = factor (data$Node)
+data = read.table("drop-trace.txt", header=T)
+data$Node = factor(data$Node)
 data$Kilobits <- data$Kilobytes * 8
-data$Type = factor (data$Type)
+data$Type = factor(data$Type)
 
 ## data.rtr = data[grep("Rtr", data$Node),]
 
 # graph rates on all nodes in Kilobits
-g.all <- ggplot (data, aes (x=Time, y=Kilobits, color=Type)) +
-  geom_point (size=2) +
-  geom_line () +
-  ylab ("Packet drop rate [Kbits/s]") +
-  facet_wrap (~ Node) +
-  theme_bw ()
+g.all <- ggplot(data, aes(x=Time, y=Kilobits, color=Type)) +
+  geom_point(size=2) +
+  geom_line() +
+  ylab("Packet drop rate [Kbits/s]") +
+  facet_wrap(~ Node) +
+  theme_bw()
 
-png ("drop-trace-all-nodes.png", width=800, height=500)
-print (g.all)
-x = dev.off ()
+png("src/ndnSIM/docs/source/_static/l2-rate-tracer.png", width=800, height=500)
+print(g.all)
+x = dev.off()
diff --git a/examples/graphs/rate-graph.R b/examples/graphs/rate-graph.R
index 6d63298..cbacf49 100755
--- a/examples/graphs/rate-graph.R
+++ b/examples/graphs/rate-graph.R
@@ -1,88 +1,47 @@
-# Copyright (c) 2012  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+# Copyright (c) 2012,2015  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
 
-# install.packages ('ggplot2')  
-library (ggplot2)
-# install.packages ('scales')  
-library (scales)
+# install.packages('ggplot2')
+library(ggplot2)
+# install.packages('scales')
+library(scales)
 
-# install.packages ('doBy')
-library (doBy)
+# install.packages('doBy')
+library(doBy)
 
 #########################
 # Rate trace processing #
 #########################
-data = read.table ("rate-trace.txt", header=T)
-data$Node = factor (data$Node)
+data = read.table("rate-trace.txt", header=T)
+data$Node = factor(data$Node)
 data$FaceId <- factor(data$FaceId)
 data$Kilobits <- data$Kilobytes * 8
-data$Type = factor (data$Type)
+data$Type = factor(data$Type)
 
 # exlude irrelevant types
-data = subset (data, Type %in% c("InInterests", "OutInterests", "InData", "OutData"))
+data = subset(data, Type %in% c("InInterests", "OutInterests", "InData", "OutData"))
 
 # combine stats from all faces
-data.combined = summaryBy (. ~ Time + Node + Type, data=data, FUN=sum)
-  
+data.combined = summaryBy(. ~ Time + Node + Type, data=data, FUN=sum)
+
 data.root = subset (data.combined, Node == "root")
-data.leaves = subset (data.combined, Node %in% c("leaf-1", "leaf-2", "leaf-3", "leaf-4"))
+data.leaves = subset(data.combined, Node %in% c("leaf-1", "leaf-2", "leaf-3", "leaf-4"))
 
 # graph rates on all nodes in Kilobits
-g.all <- ggplot (data.combined) +
-  geom_point (aes (x=Time, y=Kilobits.sum, color=Type), size=1) +
-  ylab ("Rate [Kbits/s]") +
-  facet_wrap (~ Node)
+g.all <- ggplot(data.combined) +
+  geom_point(aes (x=Time, y=Kilobits.sum, color=Type), size=1) +
+  ylab("Rate [Kbits/s]") +
+  facet_wrap(~ Node)
 
-print (g.all)
-  
+print(g.all)
+
 # graph rates on the root nodes in Packets
-g.root <- ggplot (data.root) +
-  geom_point (aes (x=Time, y=Kilobits.sum, color=Type), size=2) +
-  geom_line (aes (x=Time, y=Kilobits.sum, color=Type), size=0.5) +
-  ylab ("Rate [Kbits/s]")
+g.root <- ggplot(data.root) +
+  geom_point(aes (x=Time, y=Kilobits.sum, color=Type), size=2) +
+  geom_line(aes (x=Time, y=Kilobits.sum, color=Type), size=0.5) +
+  ylab("Rate [Kbits/s]")
 
-print (g.root)
+print(g.root)
 
-png ("root-rates.png", width=500, height=250)
-print (g.root)
-dev.off ()
-
-###############################
-# Aggreagate trace processing #
-###############################
-
-data = read.table ("aggregate-trace.txt", header=T)
-data$Node = factor (data$Node)
-data$FaceId <- factor(data$FaceId)
-data$Type = factor (data$Type)
-
-# exlude irrelevant types
-data = subset (data, Type %in% c("InInterests", "OutInterests", "InData", "OutData"))
-
-# Aggregate packet stats in 5-second intervals
-data$Time5Sec = 5 * ceiling (data$Time / 5)
-data.combined = summaryBy (. ~ Time5Sec + Node + Type, data=data, FUN=sum)
-
-data.root = subset (data.combined, Node == "root")
-data.leaves = subset (data.combined, Node %in% c("leaf-1", "leaf-2", "leaf-3", "leaf-4"))
-
-# graph rates on all nodes in Packets
-g.all <- ggplot (data.combined) +
-  geom_point (aes (x=Time5Sec, y=Packets.sum, color=Type), size=2) +
-  geom_line (aes (x=Time5Sec, y=Packets.sum, color=Type), size=0.5) +
-  ylab ("Number of transitted packets in 5 secon intervals") +
-  facet_wrap (~ Node)
-
-print (g.all)
-  
-# graph rates on the root nodes in Packets
-g.root <- ggplot (data.root) +
-  geom_point (aes (x=Time5Sec, y=Packets.sum, color=Type), size=2) +
-  geom_line (aes (x=Time5Sec, y=Packets.sum, color=Type), size=0.5) +
-  ylab ("Number of transitted packets in 5 secon intervals") +
-  ylim (c(0,2000))
-
-print (g.root)
-
-png ("root-5sec-counts.png", width=500, height=250)
-print (g.root)
-dev.off ()
+png("src/ndnSIM/docs/source/_static/root-rates.png", width=500, height=250)
+print(g.root)
+retval <- dev.off()
diff --git a/examples/ndn-different-strategy-per-prefix.cpp b/examples/ndn-different-strategy-per-prefix.cpp
index 1609f7b..54789e6 100644
--- a/examples/ndn-different-strategy-per-prefix.cpp
+++ b/examples/ndn-different-strategy-per-prefix.cpp
@@ -30,7 +30,6 @@
 using ns3::ndn::AppHelper;
 using ns3::ndn::GlobalRoutingHelper;
 using ns3::ndn::StrategyChoiceHelper;
-;
 
 /**
  * This scenario simulates a grid topology (using PointToPointGrid module)
@@ -95,9 +94,8 @@
   std::string prefix2 = "/prefix2";
 
   // Install different forwarding strategies for prefix1, prefix2
-  StrategyChoiceHelper strategyChoiceHelper;
-  strategyChoiceHelper.InstallAll(prefix1, "/localhost/nfd/strategy/broadcast");
-  strategyChoiceHelper.InstallAll(prefix2, "/localhost/nfd/strategy/best-route");
+  StrategyChoiceHelper::InstallAll(prefix1, "/localhost/nfd/strategy/broadcast");
+  StrategyChoiceHelper::InstallAll(prefix2, "/localhost/nfd/strategy/best-route");
 
   // Install NDN applications
   AppHelper consumerHelper("ns3::ndn::ConsumerCbr");
diff --git a/examples/ndn-grid-multiple-strategies.cpp b/examples/ndn-grid-multiple-strategies.cpp
index 4b6f193..06f3a1c 100644
--- a/examples/ndn-grid-multiple-strategies.cpp
+++ b/examples/ndn-grid-multiple-strategies.cpp
@@ -30,7 +30,6 @@
 using ns3::ndn::AppHelper;
 using ns3::ndn::GlobalRoutingHelper;
 using ns3::ndn::StrategyChoiceHelper;
-;
 
 /**
  * This scenario simulates a grid topology (using PointToPointGrid module)
@@ -93,15 +92,14 @@
   std::string prefix = "/prefix";
 
   // Install different forwarding strategies
-  StrategyChoiceHelper strategyChoiceHelper;
   for (int row = 0; row < 3; row++) {
     for (int column = 0; column < 3; column++) {
       if (row < 2)
-        strategyChoiceHelper.Install(grid.GetNode(row, column), "/prefix",
-                                     "/localhost/nfd/strategy/best-route");
+        StrategyChoiceHelper::Install(grid.GetNode(row, column), "/prefix",
+                                      "/localhost/nfd/strategy/best-route");
       else
-        strategyChoiceHelper.Install(grid.GetNode(row, column), "/prefix",
-                                     "/localhost/nfd/strategy/broadcast");
+        StrategyChoiceHelper::Install(grid.GetNode(row, column), "/prefix",
+                                      "/localhost/nfd/strategy/broadcast");
     }
   }
 
diff --git a/examples/ndn-load-balancer.cpp b/examples/ndn-load-balancer.cpp
index 46ea740..8db76ce 100644
--- a/examples/ndn-load-balancer.cpp
+++ b/examples/ndn-load-balancer.cpp
@@ -85,6 +85,11 @@
   // Install NDN applications
   std::string prefix = "/ucla/hello";
 
+  // Install random-load-balancer forwarding strategy in
+  // node UCLA-HUB
+  StrategyChoiceHelper::Install<nfd::fw::RandomLoadBalancerStrategy>(Names::Find<Node>("UCLA-HUB"),
+                                                                     prefix);
+
   AppHelper consumerHelper("ns3::ndn::ConsumerCbr");
   consumerHelper.SetPrefix(prefix);
   consumerHelper.SetAttribute("Frequency", StringValue("100")); // 100 interests a second
@@ -96,12 +101,6 @@
   producerHelper.Install(producer1);
   producerHelper.Install(producer2);
 
-  // Install random-load-balancer forwarding strategy in
-  // node UCLA-HUB
-  StrategyChoiceHelper strategyChoiceHelper;
-  strategyChoiceHelper.Install<nfd::fw::RandomLoadBalancerStrategy>(Names::Find<Node>("UCLA-HUB"),
-                                                                    prefix);
-
   // Add /prefix origins to ndn::GlobalRouter
   ndnGlobalRoutingHelper.AddOrigins(prefix, producer1);
   ndnGlobalRoutingHelper.AddOrigins(prefix, producer2);
