model: Removing more legacy code and make code to compile
diff --git a/utils/tracers/ndn-l3-aggregate-tracer.cpp b/utils/tracers/ndn-l3-aggregate-tracer.cpp
index 708640b..5f0dca6 100644
--- a/utils/tracers/ndn-l3-aggregate-tracer.cpp
+++ b/utils/tracers/ndn-l3-aggregate-tracer.cpp
@@ -24,9 +24,8 @@
 #include "ns3/packet.h"
 #include "ns3/config.h"
 #include "ns3/callback.h"
-#include "ns3/ndn-app.hpp"
-#include "ns3/ndn-face.hpp"
-#include "ns3/ndn-pit-entry.hpp"
+#include "apps/ndn-app.hpp"
+#include "model/ndn-face.hpp"
 
 #include "ns3/simulator.h"
 #include "ns3/node-list.h"
@@ -233,7 +232,7 @@
 void
 L3AggregateTracer::Reset()
 {
-  for (std::map<Ptr<const Face>, boost::tuple<Stats, Stats>>::iterator stats = m_stats.begin();
+  for (std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats>>::iterator stats = m_stats.begin();
        stats != m_stats.end(); stats++) {
     stats->second.get<0>().Reset();
     stats->second.get<1>().Reset();
@@ -257,7 +256,7 @@
 {
   Time time = Simulator::Now();
 
-  for (std::map<Ptr<const Face>, boost::tuple<Stats, Stats>>::iterator stats = m_stats.begin();
+  for (std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats>>::iterator stats = m_stats.begin();
        stats != m_stats.end(); stats++) {
     if (!stats->first)
       continue;
@@ -276,8 +275,8 @@
   }
 
   {
-    std::map<Ptr<const Face>, boost::tuple<Stats, Stats>>::iterator stats =
-      m_stats.find(Ptr<const Face>(0));
+    std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats>>::iterator stats =
+      m_stats.find(shared_ptr<const Face>(0));
     if (stats != m_stats.end()) {
       PRINTER("SatisfiedInterests", m_satisfiedInterests);
       PRINTER("TimedOutInterests", m_timedOutInterests);
@@ -286,7 +285,7 @@
 }
 
 void
-L3AggregateTracer::OutInterests(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3AggregateTracer::OutInterests(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_outInterests++;
   if (interest->GetWire()) {
@@ -295,7 +294,7 @@
 }
 
 void
-L3AggregateTracer::InInterests(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3AggregateTracer::InInterests(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_inInterests++;
   if (interest->GetWire()) {
@@ -304,7 +303,7 @@
 }
 
 void
-L3AggregateTracer::DropInterests(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3AggregateTracer::DropInterests(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_dropInterests++;
   if (interest->GetWire()) {
@@ -313,7 +312,7 @@
 }
 
 void
-L3AggregateTracer::OutNacks(shared_ptr<const Interest> nack, Ptr<const Face> face)
+L3AggregateTracer::OutNacks(shared_ptr<const Interest> nack, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_outNacks++;
   if (nack->GetWire()) {
@@ -322,7 +321,7 @@
 }
 
 void
-L3AggregateTracer::InNacks(shared_ptr<const Interest> nack, Ptr<const Face> face)
+L3AggregateTracer::InNacks(shared_ptr<const Interest> nack, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_inNacks++;
   if (nack->GetWire()) {
@@ -331,7 +330,7 @@
 }
 
 void
-L3AggregateTracer::DropNacks(shared_ptr<const Interest> nack, Ptr<const Face> face)
+L3AggregateTracer::DropNacks(shared_ptr<const Interest> nack, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_dropNacks++;
   if (nack->GetWire()) {
@@ -340,7 +339,7 @@
 }
 
 void
-L3AggregateTracer::OutData(shared_ptr<const Data> data, bool fromCache, Ptr<const Face> face)
+L3AggregateTracer::OutData(shared_ptr<const Data> data, bool fromCache, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_outData++;
   if (data->GetWire()) {
@@ -349,7 +348,7 @@
 }
 
 void
-L3AggregateTracer::InData(shared_ptr<const Data> data, Ptr<const Face> face)
+L3AggregateTracer::InData(shared_ptr<const Data> data, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_inData++;
   if (data->GetWire()) {
@@ -358,7 +357,7 @@
 }
 
 void
-L3AggregateTracer::DropData(shared_ptr<const Data> data, Ptr<const Face> face)
+L3AggregateTracer::DropData(shared_ptr<const Data> data, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_dropData++;
   if (data->GetWire()) {
diff --git a/utils/tracers/ndn-l3-aggregate-tracer.hpp b/utils/tracers/ndn-l3-aggregate-tracer.hpp
index aa5d82f..35bf917 100644
--- a/utils/tracers/ndn-l3-aggregate-tracer.hpp
+++ b/utils/tracers/ndn-l3-aggregate-tracer.hpp
@@ -143,31 +143,31 @@
   Print(std::ostream& os) const;
 
   virtual void
-  OutInterests(shared_ptr<const Interest>, Ptr<const Face>);
+  OutInterests(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  InInterests(shared_ptr<const Interest>, Ptr<const Face>);
+  InInterests(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  DropInterests(shared_ptr<const Interest>, Ptr<const Face>);
+  DropInterests(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  OutNacks(shared_ptr<const Interest>, Ptr<const Face>);
+  OutNacks(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  InNacks(shared_ptr<const Interest>, Ptr<const Face>);
+  InNacks(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  DropNacks(shared_ptr<const Interest>, Ptr<const Face>);
+  DropNacks(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  OutData(shared_ptr<const Data>, bool fromCache, Ptr<const Face>);
+  OutData(shared_ptr<const Data>, bool fromCache, shared_ptr<const Face>);
 
   virtual void
-  InData(shared_ptr<const Data>, Ptr<const Face>);
+  InData(shared_ptr<const Data>, shared_ptr<const Face>);
 
   virtual void
-  DropData(shared_ptr<const Data>, Ptr<const Face>);
+  DropData(shared_ptr<const Data>, shared_ptr<const Face>);
 
   virtual void
   SatisfiedInterests(Ptr<const pit::Entry>);
@@ -191,7 +191,7 @@
   Time m_period;
   EventId m_printEvent;
 
-  mutable std::map<Ptr<const Face>, boost::tuple<Stats, Stats>> m_stats;
+  mutable std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats>> m_stats;
 };
 
 } // namespace ndn
diff --git a/utils/tracers/ndn-l3-rate-tracer.cpp b/utils/tracers/ndn-l3-rate-tracer.cpp
index 6bba93b..1b91c46 100644
--- a/utils/tracers/ndn-l3-rate-tracer.cpp
+++ b/utils/tracers/ndn-l3-rate-tracer.cpp
@@ -240,7 +240,7 @@
 void
 L3RateTracer::Reset()
 {
-  for (std::map<Ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>>::iterator stats =
+  for (std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>>::iterator stats =
          m_stats.begin();
        stats != m_stats.end(); stats++) {
     stats->second.get<0>().Reset();
@@ -274,7 +274,7 @@
 {
   Time time = Simulator::Now();
 
-  for (std::map<Ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>>::iterator stats =
+  for (std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>>::iterator stats =
          m_stats.begin();
        stats != m_stats.end(); stats++) {
     if (!stats->first)
@@ -300,8 +300,8 @@
   }
 
   {
-    std::map<Ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>>::iterator stats =
-      m_stats.find(Ptr<const Face>(0));
+    std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>>::iterator stats =
+      m_stats.find(shared_ptr<const Face>(0));
     if (stats != m_stats.end()) {
       PRINTER("SatisfiedInterests", m_satisfiedInterests);
       PRINTER("TimedOutInterests", m_timedOutInterests);
@@ -310,7 +310,7 @@
 }
 
 void
-L3RateTracer::OutInterests(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3RateTracer::OutInterests(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_outInterests++;
   if (interest->GetWire()) {
@@ -319,7 +319,7 @@
 }
 
 void
-L3RateTracer::InInterests(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3RateTracer::InInterests(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_inInterests++;
   if (interest->GetWire()) {
@@ -328,7 +328,7 @@
 }
 
 void
-L3RateTracer::DropInterests(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3RateTracer::DropInterests(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_dropInterests++;
   if (interest->GetWire()) {
@@ -337,7 +337,7 @@
 }
 
 void
-L3RateTracer::OutNacks(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3RateTracer::OutNacks(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_outNacks++;
   if (interest->GetWire()) {
@@ -346,7 +346,7 @@
 }
 
 void
-L3RateTracer::InNacks(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3RateTracer::InNacks(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_inNacks++;
   if (interest->GetWire()) {
@@ -355,7 +355,7 @@
 }
 
 void
-L3RateTracer::DropNacks(shared_ptr<const Interest> interest, Ptr<const Face> face)
+L3RateTracer::DropNacks(shared_ptr<const Interest> interest, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_dropNacks++;
   if (interest->GetWire()) {
@@ -364,7 +364,7 @@
 }
 
 void
-L3RateTracer::OutData(shared_ptr<const Data> data, bool fromCache, Ptr<const Face> face)
+L3RateTracer::OutData(shared_ptr<const Data> data, bool fromCache, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_outData++;
   if (data->GetWire()) {
@@ -373,7 +373,7 @@
 }
 
 void
-L3RateTracer::InData(shared_ptr<const Data> data, Ptr<const Face> face)
+L3RateTracer::InData(shared_ptr<const Data> data, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_inData++;
   if (data->GetWire()) {
@@ -382,7 +382,7 @@
 }
 
 void
-L3RateTracer::DropData(shared_ptr<const Data> data, Ptr<const Face> face)
+L3RateTracer::DropData(shared_ptr<const Data> data, shared_ptr<const Face> face)
 {
   m_stats[face].get<0>().m_dropData++;
   if (data->GetWire()) {
diff --git a/utils/tracers/ndn-l3-rate-tracer.hpp b/utils/tracers/ndn-l3-rate-tracer.hpp
index 41adf26..1dc8118 100644
--- a/utils/tracers/ndn-l3-rate-tracer.hpp
+++ b/utils/tracers/ndn-l3-rate-tracer.hpp
@@ -130,31 +130,31 @@
 protected:
   // from L3Tracer
   virtual void
-  OutInterests(shared_ptr<const Interest>, Ptr<const Face>);
+  OutInterests(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  InInterests(shared_ptr<const Interest>, Ptr<const Face>);
+  InInterests(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  DropInterests(shared_ptr<const Interest>, Ptr<const Face>);
+  DropInterests(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  OutNacks(shared_ptr<const Interest>, Ptr<const Face>);
+  OutNacks(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  InNacks(shared_ptr<const Interest>, Ptr<const Face>);
+  InNacks(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  DropNacks(shared_ptr<const Interest>, Ptr<const Face>);
+  DropNacks(shared_ptr<const Interest>, shared_ptr<const Face>);
 
   virtual void
-  OutData(shared_ptr<const Data>, bool fromCache, Ptr<const Face>);
+  OutData(shared_ptr<const Data>, bool fromCache, shared_ptr<const Face>);
 
   virtual void
-  InData(shared_ptr<const Data>, Ptr<const Face>);
+  InData(shared_ptr<const Data>, shared_ptr<const Face>);
 
   virtual void
-  DropData(shared_ptr<const Data>, Ptr<const Face>);
+  DropData(shared_ptr<const Data>, shared_ptr<const Face>);
 
   virtual void
   SatisfiedInterests(Ptr<const pit::Entry>);
@@ -177,7 +177,7 @@
   Time m_period;
   EventId m_printEvent;
 
-  mutable std::map<Ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>> m_stats;
+  mutable std::map<shared_ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats>> m_stats;
 };
 
 } // namespace ndn
diff --git a/utils/tracers/ndn-l3-tracer.hpp b/utils/tracers/ndn-l3-tracer.hpp
index f916bd4..4b2cc5a 100644
--- a/utils/tracers/ndn-l3-tracer.hpp
+++ b/utils/tracers/ndn-l3-tracer.hpp
@@ -88,31 +88,16 @@
   Connect();
 
   virtual void
-  OutInterests(shared_ptr<const Interest>, Ptr<const Face>) = 0;
+  OutInterests(shared_ptr<const Interest>, shared_ptr<const Face>) = 0;
 
   virtual void
-  InInterests(shared_ptr<const Interest>, Ptr<const Face>) = 0;
+  InInterests(shared_ptr<const Interest>, shared_ptr<const Face>) = 0;
 
   virtual void
-  DropInterests(shared_ptr<const Interest>, Ptr<const Face>) = 0;
+  OutData(shared_ptr<const Data>, bool fromCache, shared_ptr<const Face>) = 0;
 
   virtual void
-  OutNacks(shared_ptr<const Interest>, Ptr<const Face>) = 0;
-
-  virtual void
-  InNacks(shared_ptr<const Interest>, Ptr<const Face>) = 0;
-
-  virtual void
-  DropNacks(shared_ptr<const Interest>, Ptr<const Face>) = 0;
-
-  virtual void
-  OutData(shared_ptr<const Data>, bool fromCache, Ptr<const Face>) = 0;
-
-  virtual void
-  InData(shared_ptr<const Data>, Ptr<const Face>) = 0;
-
-  virtual void
-  DropData(shared_ptr<const Data>, Ptr<const Face>) = 0;
+  InData(shared_ptr<const Data>, shared_ptr<const Face>) = 0;
 
   virtual void
   SatisfiedInterests(Ptr<const pit::Entry>) = 0;
@@ -130,13 +115,8 @@
     {
       m_inInterests = 0;
       m_outInterests = 0;
-      m_dropInterests = 0;
-      m_inNacks = 0;
-      m_outNacks = 0;
-      m_dropNacks = 0;
       m_inData = 0;
       m_outData = 0;
-      m_dropData = 0;
       m_satisfiedInterests = 0;
       m_timedOutInterests = 0;
 
@@ -146,13 +126,8 @@
 
     double m_inInterests;
     double m_outInterests;
-    double m_dropInterests;
-    double m_inNacks;
-    double m_outNacks;
-    double m_dropNacks;
     double m_inData;
     double m_outData;
-    double m_dropData;
     double m_satisfiedInterests;
     double m_timedOutInterests;
     double m_outSatisfiedInterests;