diff --git a/apps/ccnx-app.cc b/apps/ccnx-app.cc
index ba7670d..8cdddac 100644
--- a/apps/ccnx-app.cc
+++ b/apps/ccnx-app.cc
@@ -27,7 +27,7 @@
 #include "ns3/ccnx-content-object-header.h"
 #include "ns3/ccnx.h"
 #include "ns3/ccnx-fib.h"
-#include "../model/ccnx-local-face.h"
+#include "ns3/ccnx-app-face.h"
 
 NS_LOG_COMPONENT_DEFINE ("CcnxApp");
 
@@ -125,7 +125,7 @@
                  "Ccnx stack should be installed on the node " << GetNode ());
 
   // step 1. Create a face
-  m_face = CreateObject<CcnxLocalFace> (/*Ptr<CcnxApp> (this)*/this);
+  m_face = CreateObject<CcnxAppFace> (/*Ptr<CcnxApp> (this)*/this);
     
   // step 2. Add face to the CCNx stack
   GetNode ()->GetObject<Ccnx> ()->AddFace (m_face);
diff --git a/apps/ccnx-consumer-cbr.cc b/apps/ccnx-consumer-cbr.cc
index 796cdad..b399d05 100644
--- a/apps/ccnx-consumer-cbr.cc
+++ b/apps/ccnx-consumer-cbr.cc
@@ -30,7 +30,7 @@
 #include "ns3/double.h"
 
 #include "ns3/ccnx.h"
-#include "../model/ccnx-local-face.h"
+#include "ns3/ccnx-app-face.h"
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
 
diff --git a/apps/ccnx-consumer.cc b/apps/ccnx-consumer.cc
index 429939e..c9e6103 100644
--- a/apps/ccnx-consumer.cc
+++ b/apps/ccnx-consumer.cc
@@ -30,7 +30,7 @@
 #include "ns3/double.h"
 
 #include "ns3/ccnx.h"
-#include "../model/ccnx-local-face.h"
+#include "ns3/ccnx-app-face.h"
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
 // #include "ns3/weights-path-stretch-tag.h"
diff --git a/apps/ccnx-producer.cc b/apps/ccnx-producer.cc
index 69c5aea..bad9ee9 100644
--- a/apps/ccnx-producer.cc
+++ b/apps/ccnx-producer.cc
@@ -28,7 +28,7 @@
 #include "ns3/packet.h"
 #include "ns3/simulator.h"
 
-#include "../model/ccnx-local-face.h"
+#include "ns3/ccnx-app-face.h"
 #include "ns3/ccnx-fib.h"
 
 #include <boost/ref.hpp>
diff --git a/docs/Doxyfile b/docs/Doxyfile
index e9afc88..69a0fbf 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -534,7 +534,7 @@
 # parameters in a documented function, or documenting parameters that
 # don't exist or using markup commands wrongly.
 
-WARN_IF_DOC_ERROR      = YES
+WARN_IF_DOC_ERROR      = NO
 
 # This WARN_NO_PARAMDOC option can be abled to get warnings for
 # functions that are documented, but have no documentation for their parameters
@@ -542,7 +542,7 @@
 # wrong or incomplete parameter documentation, but not about the absence of
 # documentation.
 
-WARN_NO_PARAMDOC       = YES
+WARN_NO_PARAMDOC       = NO
 
 # The WARN_FORMAT tag determines the format of the warning messages that
 # doxygen can produce. The string should contain the $file, $line, and $text
diff --git a/docs/source/applications.rst b/docs/source/applications.rst
index 75b67ea..13b4aa4 100644
--- a/docs/source/applications.rst
+++ b/docs/source/applications.rst
@@ -124,8 +124,8 @@
 Custom applications
 +++++++++++++++++++
 
-Applications interact with the core of the system using :ndnsim:`CcnxLocalFace` realization of Face abstraction. 
-To simplify implementation of specific NDN application, ndnSIM provides a base :ndnsim:`CcnxApp` class that takes care of creating :ndnsim:`CcnxLocalFace` and registering it inside the NDN protocol stack, as well as provides default processing for incoming Interest and Data packets.
+Applications interact with the core of the system using :ndnsim:`CcnxAppFace` realization of Face abstraction. 
+To simplify implementation of specific NDN application, ndnSIM provides a base :ndnsim:`CcnxApp` class that takes care of creating :ndnsim:`CcnxAppFace` and registering it inside the NDN protocol stack, as well as provides default processing for incoming Interest and Data packets.
 
 .. Base CcnxApp class
 .. ^^^^^^^^^^^^^^^^^^
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index e86b7bf..bcc3e3f 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -17,7 +17,7 @@
 
 .. This flexibility allows ndnSIM to simulate scenarios of various homogeneous and heterogeneous networks (e.g., NDN-only, NDN-over-IP, etc.).
 
-The simulator is implemented in a modular fashion, using separate C++ classes to model behavior of each network-layer entity in NDN: :ndnsim:`pending Interest table (PIT) <CcnxPit>`, :ndnsim:`forwarding information base (FIB) <CcnxFib>`, :ndnsim:`content store <CcnxContentStore>`, :ndnsim:`network <CcnxNetDeviceFace>` and :ndnsim:`application <CcnxLocalFace>` interfaces, :ndnsim:`Interest forwarding strategies <CcnxForwardingStrategy>`, etc.
+The simulator is implemented in a modular fashion, using separate C++ classes to model behavior of each network-layer entity in NDN: :ndnsim:`pending Interest table (PIT) <CcnxPit>`, :ndnsim:`forwarding information base (FIB) <CcnxFib>`, :ndnsim:`content store <CcnxContentStore>`, :ndnsim:`network <CcnxNetDeviceFace>` and :ndnsim:`application <CcnxAppFace>` interfaces, :ndnsim:`Interest forwarding strategies <CcnxForwardingStrategy>`, etc.
 This modular structure allows any component to be easily modified or replaced with no or minimal impact on other components.
 In addition, the simulator provides an extensive collection of interfaces and helpers to perform detailed tracing behavior of every component, as well as NDN traffic flow.
 
@@ -34,7 +34,7 @@
     .		     v			     	            v			  .
     .		+------------------+	     +----------------------+		  .
     .           |    "CcnxFace"    |	     |      "CcnxFace"      |		  .
-    .           | "(CcnxLocalFace)"|	     | "(CcnxNetDeviceFace)"|		  .
+    .           |  "(CcnxAppFace)" |	     | "(CcnxNetDeviceFace)"|		  .
     .		+------------------+         +----------------------+		  .
     .		               ^                   ^				  .
     .			       |                   |				  .
@@ -181,7 +181,7 @@
 +=================+=====================================================================+
 | ``model/``      | implementation of NDN base: :ndnsim:`CcnxL3Protocol`, faces         |
 |                 | (:ndnsim:`CcnxFace`, :ndnsim:`CcnxNetDeviceFace`, forwarding        |
-|                 | :ndnsim:`CcnxLocalFace`),                                           |
+|                 | :ndnsim:`CcnxAppFace`),                                             |
 |                 | strategies (:ndnsim:`CcnxForwardingStrategy`,                       |
 |                 | :ndnsim:`CcnxFloodingStrategy`, :ndnsim:`CcnxBestRouteStrategy`),   |
 |                 | etc.                                                                |
diff --git a/model/ccnx-local-face.cc b/model/ccnx-app-face.cc
similarity index 82%
rename from model/ccnx-local-face.cc
rename to model/ccnx-app-face.cc
index 8f78dff..e47d35b 100644
--- a/model/ccnx-local-face.cc
+++ b/model/ccnx-app-face.cc
@@ -20,7 +20,7 @@
  *
  */
 
-#include "ccnx-local-face.h"
+#include "ccnx-app-face.h"
 
 #include "ns3/log.h"
 #include "ns3/packet.h"
@@ -34,22 +34,22 @@
 #include "ccnx-interest-header.h"
 #include "ccnx-content-object-header.h"
 
-NS_LOG_COMPONENT_DEFINE ("CcnxLocalFace");
+NS_LOG_COMPONENT_DEFINE ("CcnxAppFace");
 
 namespace ns3 
 {
 
 TypeId
-CcnxLocalFace::GetTypeId ()
+CcnxAppFace::GetTypeId ()
 {
-  static TypeId tid = TypeId ("ns3::CcnxLocalFace")
+  static TypeId tid = TypeId ("ns3::CcnxAppFace")
     .SetParent<CcnxFace> ()
     .SetGroupName ("Ccnx")
     ;
   return tid;
 }
 
-CcnxLocalFace::CcnxLocalFace (Ptr<CcnxApp> app)
+CcnxAppFace::CcnxAppFace (Ptr<CcnxApp> app)
   : CcnxFace (app->GetNode ())
   , m_app (app)
 {
@@ -58,29 +58,29 @@
   NS_ASSERT (m_app != 0);
 }
 
-CcnxLocalFace::~CcnxLocalFace ()
+CcnxAppFace::~CcnxAppFace ()
 {
   NS_LOG_FUNCTION_NOARGS ();
 }
 
-CcnxLocalFace::CcnxLocalFace ()
+CcnxAppFace::CcnxAppFace ()
   : CcnxFace (0)
 {
 }
 
-CcnxLocalFace::CcnxLocalFace (const CcnxLocalFace &)
+CcnxAppFace::CcnxAppFace (const CcnxAppFace &)
   : CcnxFace (0)
 {
 }
 
-CcnxLocalFace& CcnxLocalFace::operator= (const CcnxLocalFace &)
+CcnxAppFace& CcnxAppFace::operator= (const CcnxAppFace &)
 {
-  return *((CcnxLocalFace*)0);
+  return *((CcnxAppFace*)0);
 }
 
 
 void
-CcnxLocalFace::RegisterProtocolHandler (ProtocolHandler handler)
+CcnxAppFace::RegisterProtocolHandler (ProtocolHandler handler)
 {
   NS_LOG_FUNCTION (this);
 
@@ -90,7 +90,7 @@
 }
 
 void
-CcnxLocalFace::SendImpl (Ptr<Packet> p)
+CcnxAppFace::SendImpl (Ptr<Packet> p)
 {
   NS_LOG_FUNCTION (this << p);
 
@@ -129,7 +129,7 @@
     }
 }
 
-std::ostream& CcnxLocalFace::Print (std::ostream& os) const
+std::ostream& CcnxAppFace::Print (std::ostream& os) const
 {
   os << "dev=local(" << GetId() << ")";
   return os;
diff --git a/model/ccnx-local-face.h b/model/ccnx-app-face.h
similarity index 78%
rename from model/ccnx-local-face.h
rename to model/ccnx-app-face.h
index 327199d..39438f5 100644
--- a/model/ccnx-local-face.h
+++ b/model/ccnx-app-face.h
@@ -19,8 +19,8 @@
                 Ilya Moiseenko <iliamo@cs.ucla.edu>
  */
 
-#ifndef CCNX_LOCAL_FACE_H
-#define CCNX_LOCAL_FACE_H
+#ifndef CCNX_APP_FACE_H
+#define CCNX_APP_FACE_H
 
 #include "ccnx-face.h"
 #include "ns3/traced-callback.h"
@@ -41,9 +41,9 @@
  * component responsible for actual delivery of data packet to and
  * from CCNx stack
  *
- * \see CcnxLocalFace, CcnxNetDeviceFace, CcnxIpv4Face, CcnxUdpFace
+ * \see CcnxAppFace, CcnxNetDeviceFace, CcnxIpv4Face, CcnxUdpFace
  */
-class CcnxLocalFace  : public CcnxFace
+class CcnxAppFace  : public CcnxFace
 {
 public:
   static TypeId
@@ -52,8 +52,8 @@
   /**
    * \brief Default constructor
    */
-  CcnxLocalFace (Ptr<CcnxApp> app);
-  virtual ~CcnxLocalFace();
+  CcnxAppFace (Ptr<CcnxApp> app);
+  virtual ~CcnxAppFace();
   
   ////////////////////////////////////////////////////////////////////
   // methods overloaded from CcnxFace
@@ -70,16 +70,16 @@
   ////////////////////////////////////////////////////////////////////
  
 private:
-  CcnxLocalFace ();
-  CcnxLocalFace (const CcnxLocalFace &); ///< \brief Disabled copy constructor
-  CcnxLocalFace& operator= (const CcnxLocalFace &); ///< \brief Disabled copy operator
+  CcnxAppFace ();
+  CcnxAppFace (const CcnxAppFace &); ///< \brief Disabled copy constructor
+  CcnxAppFace& operator= (const CcnxAppFace &); ///< \brief Disabled copy operator
 
 private:
   Ptr<CcnxApp> m_app;
 };
 
-std::ostream& operator<< (std::ostream& os, const CcnxLocalFace &localFace);
+std::ostream& operator<< (std::ostream& os, const CcnxAppFace &localFace);
 
 } // namespace ns3
 
-#endif
+#endif // CCNX_APP_FACE_H
diff --git a/wscript b/wscript
index 32428ca..b890506 100644
--- a/wscript
+++ b/wscript
@@ -85,6 +85,8 @@
         "model/ccnx-pit-entry-outgoing-face.h",
         "model/ccnx-fib.h",
         "model/ccnx-face.h",
+        "model/ccnx-app-face.h",
+        "model/ccnx-net-device-face.h",
         "model/ccnx-interest-header.h",
         "model/ccnx-content-object-header.h",
         "model/ccnx-name-components.h",
