diff --git a/examples/ndn-congestion-topo-plugin.cc b/examples/ndn-congestion-topo-plugin.cc
index f5e9a5e..f80a816 100644
--- a/examples/ndn-congestion-topo-plugin.cc
+++ b/examples/ndn-congestion-topo-plugin.cc
@@ -51,11 +51,14 @@
   cmd.Parse (argc, argv);
 
   AnnotatedTopologyReader topologyReader ("", 25);
-  topologyReader.SetFileName ("src/ndnSIM/examples/topology/topo-grid-3x3.txt");
+  topologyReader.SetFileName ("src/ndnSIM/examples/topologies/topo-6-node.txt");
   topologyReader.Read ();
 
   // Install CCNx stack on all nodes
   ndn::StackHelper ccnxHelper;
+  ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute");
+  ccnxHelper.SetContentStore ("ns3::ndn::cs::Lru",
+                              "MaxSize", "10000");
   ccnxHelper.InstallAll ();
 
   // Installing global routing interface on all nodes
diff --git a/examples/ndn-grid-topo-plugin.cc b/examples/ndn-grid-topo-plugin.cc
index aa761da..6d0e042 100644
--- a/examples/ndn-grid-topo-plugin.cc
+++ b/examples/ndn-grid-topo-plugin.cc
@@ -55,11 +55,12 @@
   cmd.Parse (argc, argv);
 
   AnnotatedTopologyReader topologyReader ("", 25);
-  topologyReader.SetFileName ("src/ndnSIM/examples/topology/topo-grid-3x3.txt");
+  topologyReader.SetFileName ("src/ndnSIM/examples/topologies/topo-grid-3x3.txt");
   topologyReader.Read ();
 
   // Install CCNx stack on all nodes
   ndn::StackHelper ccnxHelper;
+  ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute");
   ccnxHelper.InstallAll ();
 
   // Installing global routing interface on all nodes
diff --git a/examples/ndn-grid.cc b/examples/ndn-grid.cc
index bb2d7db..0651e22 100644
--- a/examples/ndn-grid.cc
+++ b/examples/ndn-grid.cc
@@ -39,7 +39,7 @@
  *
  * FIB is populated using NdnGlobalRoutingHelper.
  *
- * Consumer requests data from producer with frequency 10 interests per second
+ * Consumer requests data from producer with frequency 100 interests per second
  * (interests contain constantly increasing sequence number).
  *
  * For every received interest, producer replies with a data packet, containing
@@ -56,7 +56,7 @@
   // Setting default parameters for PointToPoint links and channels
   Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("1Mbps"));
   Config::SetDefault ("ns3::PointToPointChannel::Delay", StringValue ("10ms"));
-  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("20"));
+  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("10"));
 
   // Read optional command-line parameters (e.g., enable visualizer with ./waf --run=<> --visualize
   CommandLine cmd;
@@ -69,6 +69,7 @@
 
   // Install CCNx stack on all nodes
   ndn::StackHelper ccnxHelper;
+  ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute");
   ccnxHelper.InstallAll ();
 
   // Installing global routing interface on all nodes
@@ -85,7 +86,7 @@
 
   ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerCbr");
   consumerHelper.SetPrefix (prefix);
-  consumerHelper.SetAttribute ("Frequency", StringValue ("10")); // 10 interests a second
+  consumerHelper.SetAttribute ("Frequency", StringValue ("100")); // 100 interests a second
   consumerHelper.Install (consumerNodes);
 
   ndn::AppHelper producerHelper ("ns3::ndn::Producer");
