diff --git a/ndn-cpp/Closure.hpp b/ndn-cpp/Closure.hpp
index c017a81..77d212a 100644
--- a/ndn-cpp/Closure.hpp
+++ b/ndn-cpp/Closure.hpp
@@ -33,27 +33,27 @@
   UPCALL_DATA_BAD           = 6  // verification failed  
 };
 
-class NDN;
+class Face;
 class Interest;
 class Data;
 
 class UpcallInfo {
 public:
-  UpcallInfo(NDN *ndn, ptr_lib::shared_ptr<Interest> &interest, int matchedComps, ptr_lib::shared_ptr<Data> &data) 
+  UpcallInfo(Face *ndn, ptr_lib::shared_ptr<Interest> &interest, int matchedComps, ptr_lib::shared_ptr<Data> &data) 
   {
     ndn_ = ndn;
     interest_ = interest;
     data_ = data;
   }
   
-  NDN *getNDN() { return ndn_; }
+  Face *getNDN() { return ndn_; }
   
   ptr_lib::shared_ptr<Interest> &getInterest() { return interest_; }
   
   ptr_lib::shared_ptr<Data> &getData() { return data_; }
   
 private:
-  NDN *ndn_;
+  Face *ndn_;
   ptr_lib::shared_ptr<Interest> interest_;
   ptr_lib::shared_ptr<Data> data_;
 };
diff --git a/ndn-cpp/NDN.cpp b/ndn-cpp/face.cpp
similarity index 79%
rename from ndn-cpp/NDN.cpp
rename to ndn-cpp/face.cpp
index 206af43..f2212ea 100644
--- a/ndn-cpp/NDN.cpp
+++ b/ndn-cpp/face.cpp
@@ -6,14 +6,14 @@
 #include "encoding/BinaryXMLDecoder.hpp"
 #include "c/encoding/BinaryXML.h"
 #include "data.hpp"
-#include "NDN.hpp"
+#include "face.hpp"
 
 using namespace std;
 using namespace ndn::ptr_lib;
 
 namespace ndn {
 
-void NDN::expressInterest(const Name &name, const shared_ptr<Closure> &closure, const Interest *interestTemplate)
+void Face::expressInterest(const Name &name, const shared_ptr<Closure> &closure, const Interest *interestTemplate)
 {
   Interest interest(name);
   shared_ptr<vector<unsigned char> > encoding = interest.encode();  
@@ -25,7 +25,7 @@
   transport_->send(*encoding);
 }
     
-void NDN::onReceivedElement(unsigned char *element, unsigned int elementLength)
+void Face::onReceivedElement(unsigned char *element, unsigned int elementLength)
 {
   BinaryXmlDecoder decoder(element, elementLength);
   
diff --git a/ndn-cpp/NDN.hpp b/ndn-cpp/face.hpp
similarity index 88%
rename from ndn-cpp/NDN.hpp
rename to ndn-cpp/face.hpp
index 106431a..ed30050 100644
--- a/ndn-cpp/NDN.hpp
+++ b/ndn-cpp/face.hpp
@@ -3,8 +3,8 @@
  * See COPYING for copyright and distribution information.
  */
 
-#ifndef NDN_NDN_HPP
-#define	NDN_NDN_HPP
+#ifndef NDN_FACE_HPP
+#define	NDN_FACE_HPP
 
 #include "Closure.hpp"
 #include "Interest.hpp"
@@ -15,19 +15,19 @@
 
 namespace ndn {
 
-class NDN : public ElementListener {
+class Face : public ElementListener {
 public:
-  NDN(const char *host, unsigned short port, const ptr_lib::shared_ptr<Transport> &transport)
+  Face(const char *host, unsigned short port, const ptr_lib::shared_ptr<Transport> &transport)
   : host_(host), port_(port), transport_(transport)
   {
   }
   
-  NDN(const char *host, unsigned short port)
+  Face(const char *host, unsigned short port)
   : host_(host), port_(port), transport_(new UdpTransport())
   {
   }
   
-  NDN(const char *host)
+  Face(const char *host)
   : host_(host), port_(9695), transport_(new UdpTransport())
   {
   }
diff --git a/ndn-cpp/transport/TcpTransport.cpp b/ndn-cpp/transport/TcpTransport.cpp
index 1f217f0..a6a6663 100644
--- a/ndn-cpp/transport/TcpTransport.cpp
+++ b/ndn-cpp/transport/TcpTransport.cpp
@@ -4,7 +4,7 @@
  */
 
 #include <stdexcept>
-#include "../NDN.hpp"
+#include "../face.hpp"
 #include "../c/util/ndn_realloc.h"
 #include "TcpTransport.hpp"
 
@@ -12,20 +12,20 @@
 
 namespace ndn {
 
-void TcpTransport::connect(NDN &ndn)
+void TcpTransport::connect(Face &face)
 {
   ndn_Error error;
-  if (error = ndn_TcpTransport_connect(&transport_, (char *)ndn.getHost(), ndn.getPort()))
+  if (error = ndn_TcpTransport_connect(&transport_, (char *)face.getHost(), face.getPort()))
     throw std::runtime_error(ndn_getErrorString(error)); 
 
   // TODO: This belongs in the socket listener.
   const unsigned int initialLength = 1000;
   // Automatically cast ndn_ to (struct ndn_ElementListener *)
   ndn_BinaryXmlElementReader_init
-    (&elementReader_, &ndn, (unsigned char *)malloc(initialLength), initialLength, ndn_realloc);
+    (&elementReader_, &face, (unsigned char *)malloc(initialLength), initialLength, ndn_realloc);
   
   // TODO: Properly indicate connected status.
-  ndn_ = &ndn;
+  face_ = &face;
 }
 
 void TcpTransport::send(const unsigned char *data, unsigned int dataLength)
diff --git a/ndn-cpp/transport/TcpTransport.hpp b/ndn-cpp/transport/TcpTransport.hpp
index b3b8d30..88e61fb 100644
--- a/ndn-cpp/transport/TcpTransport.hpp
+++ b/ndn-cpp/transport/TcpTransport.hpp
@@ -17,14 +17,14 @@
   TcpTransport() 
   {
     ndn_TcpTransport_init(&transport_);
-    ndn_ = 0;
+    face_ = 0;
   }
   
   /**
    * 
-   * @param ndn Not a shared_ptr because we assume that it will remain valid during the life of this Transport object.
+   * @param face Not a shared_ptr because we assume that it will remain valid during the life of this Transport object.
    */
-  virtual void connect(NDN &ndn);
+  virtual void connect(Face &face);
   
   virtual void send(const unsigned char *data, unsigned int dataLength);
 
@@ -32,7 +32,7 @@
   
 private:
   struct ndn_TcpTransport transport_;
-  NDN *ndn_;
+  Face *face_;
   // TODO: This belongs in the socket listener.
   ndn_BinaryXmlElementReader elementReader_;
 };
diff --git a/ndn-cpp/transport/Transport.cpp b/ndn-cpp/transport/Transport.cpp
index 0fa97bc..e0aab03 100644
--- a/ndn-cpp/transport/Transport.cpp
+++ b/ndn-cpp/transport/Transport.cpp
@@ -10,7 +10,7 @@
 
 namespace ndn {
 
-void Transport::connect(NDN &ndn) 
+void Transport::connect(Face &face) 
 {
   throw logic_error("unimplemented");
 }
diff --git a/ndn-cpp/transport/Transport.hpp b/ndn-cpp/transport/Transport.hpp
index 4a55573..af1a2c0 100644
--- a/ndn-cpp/transport/Transport.hpp
+++ b/ndn-cpp/transport/Transport.hpp
@@ -10,14 +10,14 @@
 
 namespace ndn {
 
-class NDN;  
+class Face;  
 class Transport {
 public:
   /**
    * 
-   * @param ndn Not a shared_ptr because we assume that it will remain valid during the life of this Transport object.
+   * @param face Not a shared_ptr because we assume that it will remain valid during the life of this Transport object.
    */
-  virtual void connect(NDN &ndn);
+  virtual void connect(Face &face);
   
   virtual void send(const unsigned char *data, unsigned int dataLength);
   
diff --git a/ndn-cpp/transport/UdpTransport.cpp b/ndn-cpp/transport/UdpTransport.cpp
index 6fd47e4..52b62a5 100644
--- a/ndn-cpp/transport/UdpTransport.cpp
+++ b/ndn-cpp/transport/UdpTransport.cpp
@@ -4,7 +4,7 @@
  */
 
 #include <stdexcept>
-#include "../NDN.hpp"
+#include "../face.hpp"
 #include "../c/util/ndn_realloc.h"
 #include "UdpTransport.hpp"
 
@@ -12,20 +12,20 @@
 
 namespace ndn {
 
-void UdpTransport::connect(NDN &ndn)
+void UdpTransport::connect(Face &face)
 {
   ndn_Error error;
-  if (error = ndn_UdpTransport_connect(&transport_, (char *)ndn.getHost(), ndn.getPort()))
+  if (error = ndn_UdpTransport_connect(&transport_, (char *)face.getHost(), face.getPort()))
     throw std::runtime_error(ndn_getErrorString(error)); 
 
   // TODO: This belongs in the socket listener.
   const unsigned int initialLength = 1000;
   // Automatically cast ndn_ to (struct ndn_ElementListener *)
   ndn_BinaryXmlElementReader_init
-    (&elementReader_, &ndn, (unsigned char *)malloc(initialLength), initialLength, ndn_realloc);
+    (&elementReader_, &face, (unsigned char *)malloc(initialLength), initialLength, ndn_realloc);
   
   // TODO: Properly indicate connected status.
-  ndn_ = &ndn;
+  face_ = &face;
 }
 
 void UdpTransport::send(const unsigned char *data, unsigned int dataLength)
diff --git a/ndn-cpp/transport/UdpTransport.hpp b/ndn-cpp/transport/UdpTransport.hpp
index 460eedd..781effd 100644
--- a/ndn-cpp/transport/UdpTransport.hpp
+++ b/ndn-cpp/transport/UdpTransport.hpp
@@ -17,14 +17,14 @@
   UdpTransport() 
   {
     ndn_UdpTransport_init(&transport_);
-    ndn_ = 0;
+    face_ = 0;
   }
   
   /**
    * 
-   * @param ndn Not a shared_ptr because we assume that it will remain valid during the life of this Transport object.
+   * @param face Not a shared_ptr because we assume that it will remain valid during the life of this Transport object.
    */
-  virtual void connect(NDN &ndn);
+  virtual void connect(Face &face);
   
   virtual void send(const unsigned char *data, unsigned int dataLength);
 
@@ -32,7 +32,7 @@
   
 private:
   struct ndn_UdpTransport transport_;
-  NDN *ndn_;
+  Face *face_;
   // TODO: This belongs in the socket listener.
   ndn_BinaryXmlElementReader elementReader_;
 };
