diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 86daa26..3c18af0 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -38,6 +38,8 @@
 
 namespace ns3 {
 
+NS_OBJECT_ENSURE_REGISTERED (CcnxFace);
+
 TypeId
 CcnxFace::GetTypeId ()
 {
@@ -63,6 +65,13 @@
     //                BooleanValue (false),
     //                MakeBooleanAccessor (&CcnxFace::m_enableMetricTagging),
     //                MakeBooleanChecker ())
+
+    .AddTraceSource ("CcnxTx", "Transmitted packet trace",
+                     MakeTraceSourceAccessor (&CcnxFace::m_ccnxTxTrace))
+    .AddTraceSource ("CcnxRx", "Received packet trace",
+                     MakeTraceSourceAccessor (&CcnxFace::m_ccnxRxTrace))
+    .AddTraceSource ("CcnxDrop", "Dropped packet trace",
+                     MakeTraceSourceAccessor (&CcnxFace::m_ccnxDropTrace))
     ;
   return tid;
 }
@@ -82,7 +91,7 @@
   , m_id ((uint32_t)-1)
   , m_lastLeakTime (0)
   , m_metric (0)
-  , m_enableMetricTagging (false)
+  // , m_enableMetricTagging (false)
 {
   NS_LOG_FUNCTION (this);
 
@@ -152,10 +161,11 @@
   NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
   NS_LOG_DEBUG (*packet);
 
-  /// \todo Implement tracing, if requested
-
   if (!IsUp ())
-    return false;
+    {
+      m_ccnxDropTrace (packet);
+      return false;
+    }
 
   // if (m_enableMetricTagging)
   //   {
@@ -174,7 +184,8 @@
   //     tag->AddPathInfo (m_node, GetMetric ());
   //     packet->AddPacketTag (tag);
   //   }
-  
+
+  m_ccnxTxTrace (packet);
   SendImpl (packet);
   return true;
 }
@@ -184,11 +195,13 @@
 {
   NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
 
-  /// \todo Implement tracing, if requested
-
   if (!IsUp ())
-    return false;
+    {
+      // no tracing here. If we were off while receiving, we shouldn't even know that something was there
+      return false;
+    }
 
+  m_ccnxRxTrace (packet);
   m_protocolHandler (this, packet);
   
   return true;
diff --git a/model/ccnx-face.h b/model/ccnx-face.h
index 16a31fd..ad8ca80 100644
--- a/model/ccnx-face.h
+++ b/model/ccnx-face.h
@@ -232,7 +232,11 @@
   Time m_lastLeakTime;
   uint32_t m_metric; ///< \brief metric of the face
 
-  bool m_enableMetricTagging; 
+  // bool m_enableMetricTagging;
+
+  TracedCallback<Ptr<const Packet> > m_ccnxTxTrace;
+  TracedCallback<Ptr<const Packet> > m_ccnxRxTrace;
+  TracedCallback<Ptr<const Packet> > m_ccnxDropTrace;
 };
 
 std::ostream& operator<< (std::ostream& os, const CcnxFace &face);
