Slight API change.  Now there is only one CcnxAppHelper that can create all CcnxApps
diff --git a/examples/abilene-topology.cc b/examples/abilene-topology.cc
index 660d899..d17f23a 100644
--- a/examples/abilene-topology.cc
+++ b/examples/abilene-topology.cc
@@ -121,10 +121,14 @@
   ccnxHelper.InstallAll ();
     
   NS_LOG_INFO ("Installing Applications");
-  CcnxConsumerHelper consumerHelper ("/5");
+  CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+  consumerHelper.SetPrefix ("/5");
   ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/abilene", "ATLAng"));
-    
-  CcnxProducerHelper producerHelper ("/5",1024);
+  
+  CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+  producerHelper.SetPrefix ("/5");
+  producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
+
   ApplicationContainer producers = producerHelper.Install (Names::Find<Node> ("/abilene", "IPLSng"));
 
   // // Populate FIB based on IPv4 global routing controller
diff --git a/examples/annotated-topology-read-example.cc b/examples/annotated-topology-read-example.cc
index c220873..450d8d1 100644
--- a/examples/annotated-topology-read-example.cc
+++ b/examples/annotated-topology-read-example.cc
@@ -93,15 +93,19 @@
   Ptr<CcnxFaceContainer> cf = ccnx.Install (nodes);
      
   NS_LOG_INFO ("Installing Applications");
-  CcnxConsumerHelper helper ("/3");
-  ApplicationContainer app = helper.Install (nodes.Get(1));
+  CcnxAppHelper helper ("ns3::CcnxConsumer");
+  helper.SetPrefix ("/3");
+  ApplicationContainer app = helper.Install ("1");
   app.Start (Seconds (1.0));
   app.Stop (Seconds (1000.05));
-    
-  CcnxProducerHelper helper3 ("/3",120);
-  ApplicationContainer app3 = helper3.Install(nodes.Get(6));
-  app3.Start(Seconds(0.0));
-  app3.Stop(Seconds(1500.0));
+
+  CcnxAppHelper helper2 ("ns3::CcnxProducer");
+  helper2.SetPrefix ("/3");
+  helper2.SetAttribute ("PayloadSize", StringValue("1024"));
+  ApplicationContainer app2 = helper2.Install("3");
+
+  app2.Start(Seconds(0.0));
+  app2.Stop(Seconds(1500.0));
     
   // ------------------------------------------------------------
   // -- Run the simulation
diff --git a/examples/ccnx-grid.cc b/examples/ccnx-grid.cc
index 51d7858..28a021b 100644
--- a/examples/ccnx-grid.cc
+++ b/examples/ccnx-grid.cc
@@ -116,13 +116,16 @@
   std::ostringstream prefix;
   prefix << "/" << producer->GetId ();
   
-  CcnxConsumerHelper consumerHelper (prefix.str ());
+  CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+  consumerHelper.SetPrefix (prefix.str ());
   ApplicationContainer consumers = consumerHelper.Install (consumerNodes);
   
   // consumers.Start (Seconds (0.0));
   // consumers.Stop (finishTime);
     
-  CcnxProducerHelper producerHelper (prefix.str (),1024);
+  CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+  producerHelper.SetPrefix (prefix.str ());
+  producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
   ApplicationContainer producers = producerHelper.Install (producer);
   
   // producers.Start(Seconds(0.0));
diff --git a/examples/ccnx-test.cc b/examples/ccnx-test.cc
index d5cb1ad..cae2815 100644
--- a/examples/ccnx-test.cc
+++ b/examples/ccnx-test.cc
@@ -46,13 +46,17 @@
   CcnxStackHelper ccnx;
   Ptr<CcnxFaceContainer> cf = ccnx.Install (c);
 
-  CcnxConsumerHelper helper ("/3");
+  CcnxAppHelper helper ("ns3::CcnxConsumer");
+  helper.SetPrefix ("/3");
   ApplicationContainer app = helper.Install ("1");
   app.Start (Seconds (1.0));
   app.Stop (Seconds (10.05));
-    
-  CcnxProducerHelper helper2 ("/3",120);
+
+  CcnxAppHelper helper2 ("ns3::CcnxProducer");
+  helper2.SetPrefix ("/3");
+  helper2.SetAttribute ("PayloadSize", StringValue("1024"));
   ApplicationContainer app2 = helper2.Install("3");
+  
   app2.Start(Seconds(0.0));
   app2.Stop(Seconds(15.0));
   
diff --git a/examples/synthetic-topology.cc b/examples/synthetic-topology.cc
index f03c22e..39c45eb 100644
--- a/examples/synthetic-topology.cc
+++ b/examples/synthetic-topology.cc
@@ -88,7 +88,9 @@
   ccnxHelper.InstallAll ();
     
   NS_LOG_INFO ("Installing Applications");
-  CcnxConsumerHelper consumerHelper ("/6");
+  CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+
+  consumerHelper.SetPrefix ("/6");
   ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/synthetic", "c1"));
 
   consumerHelper.SetPrefix ("/7");
@@ -100,24 +102,27 @@
   consumerHelper.SetPrefix ("/10");
   ApplicationContainer consumers4 = consumerHelper.Install(Names::Find<Node> ("/synthetic", "c4"));
 
-  consumers.Start (Seconds (2.121212123));
-  consumers2.Start (Seconds (0.166666));
-  consumers3.Start (Seconds (4.1235432));
-  consumers4.Start (Seconds (3.00005421));
-  
-  CcnxProducerHelper producerHelper ("/6",1024);
-  ApplicationContainer producers = producerHelper.Install (Names::Find<Node> ("/synthetic", "p1"));
-        
-  CcnxProducerHelper producerHelper2 ("/7",1024);
-  ApplicationContainer producers2 = producerHelper2.Install (Names::Find<Node> ("/synthetic", "p2"));
+  consumers.Start (Seconds (0));
+  consumers2.Start (Seconds (10));
+  consumers3.Start (Seconds (20));
+  consumers4.Start (Seconds (30));
 
-  CcnxProducerHelper producerHelper3 ("/8",1024);
-  ApplicationContainer producers3 = producerHelper3.Install (Names::Find<Node> ("/synthetic", "p3"));
+  /////////////////////////////////////////////
   
-  CcnxProducerHelper producerHelper4 ("/10",1024);
-  ApplicationContainer producers4 = producerHelper4.Install (Names::Find<Node> ("/synthetic", "p4"));
+  CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+  producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
+ 
+  producerHelper.SetPrefix ("/6");  
+  producerHelper.Install (Names::Find<Node> ("/synthetic", "p1"));
+        
+  producerHelper.SetPrefix ("/7");
+  producerHelper.Install (Names::Find<Node> ("/synthetic", "p2"));
+
+  producerHelper.SetPrefix ("/8");
+  producerHelper.Install (Names::Find<Node> ("/synthetic", "p3"));
   
-  Simulator::Schedule (Seconds (10.0), PrintTime);
+  producerHelper.SetPrefix ("/10");
+  producerHelper.Install (Names::Find<Node> ("/synthetic", "p4"));
 
   // Populate FIB based on IPv4 global routing controller
   ccnxHelper.InstallFakeGlobalRoutes ();
@@ -126,6 +131,8 @@
   ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p3"));
   ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p4"));
 
+  Simulator::Schedule (Seconds (10.0), PrintTime);
+
   Simulator::Stop (finishTime);
 
   NS_LOG_INFO ("Run Simulation.");
diff --git a/examples/synthetic-topology.txt b/examples/synthetic-topology.txt
index 0d175b0..240ef1e 100644
--- a/examples/synthetic-topology.txt
+++ b/examples/synthetic-topology.txt
@@ -21,7 +21,7 @@
 n1	n2	1Mbps 		1176   	1ms   		20 
 n1	n12	1Mbps 		587    	1ms   		20
 n12	n2	1Mbps 		846    	1ms   		20
-n2	p1	10Mbps 		260   	50ms   		200
+n2	p1	10Mbps 		260   	1ms   		200
 n2	p2	10Mbps 		700   	1ms  		200
 n2	p3	10Mbps		1	1ms		200
 c4	n1	10Mbps		1	1ms		200