diff --git a/Makefile.am b/Makefile.am
index b926a93..c87fc75 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,16 +17,60 @@
 bin_PROGRAMS = bin/test-encode-decode-forwarding-entry bin/test-encode-decode-interest bin/test-encode-decode-data \
   bin/test-get-async bin/test-publish-async
 
+# Public C headers.
+ndn_cpp_c_headers = \
+  include/ndn-cpp/ndn-cpp-config.h \
+  include/ndn-cpp/c/common.h \
+  include/ndn-cpp/c/data-types.h \
+  include/ndn-cpp/c/forwarding-flags.h \
+  include/ndn-cpp/c/interest-types.h \
+  include/ndn-cpp/c/key-types.h \
+  include/ndn-cpp/c/encoding/element-listener.h
+
+# Public C++ headers.
+ndn_cpp_cpp_headers = \
+  include/ndn-cpp/common.hpp \
+  include/ndn-cpp/data.hpp \
+  include/ndn-cpp/face.hpp \
+  include/ndn-cpp/forwarding-entry.hpp \
+  include/ndn-cpp/forwarding-flags.hpp \
+  include/ndn-cpp/interest.hpp \
+  include/ndn-cpp/key.hpp \
+  include/ndn-cpp/name.hpp \
+  include/ndn-cpp/node.hpp \
+  include/ndn-cpp/publisher-public-key-digest.hpp \
+  include/ndn-cpp/sha256-with-rsa-signature.hpp \
+  include/ndn-cpp/encoding/element-listener.hpp \
+  include/ndn-cpp/encoding/binary-xml-wire-format.hpp \
+  include/ndn-cpp/encoding/wire-format.hpp \
+  include/ndn-cpp/security/security-common.hpp \
+  include/ndn-cpp/security/key-chain.hpp \
+  include/ndn-cpp/security/security-exception.hpp \
+  include/ndn-cpp/security/certificate/oid.hpp \
+  include/ndn-cpp/security/certificate/public-key.hpp \
+  include/ndn-cpp/security/encryption/encryption-manager.hpp \
+  include/ndn-cpp/security/identity/basic-identity-storage.hpp \
+  include/ndn-cpp/security/identity/identity-manager.hpp \
+  include/ndn-cpp/security/identity/identity-storage.hpp \
+  include/ndn-cpp/security/identity/memory-identity-storage.hpp \
+  include/ndn-cpp/security/identity/memory-private-key-storage.hpp \
+  include/ndn-cpp/security/identity/osx-private-key-storage.hpp \
+  include/ndn-cpp/security/identity/private-key-storage.hpp \
+  include/ndn-cpp/security/policy/no-verify-policy-manager.hpp \
+  include/ndn-cpp/security/policy/policy-manager.hpp \
+  include/ndn-cpp/transport/tcp-transport.hpp \
+  include/ndn-cpp/transport/transport.hpp \
+  include/ndn-cpp/transport/udp-transport.hpp \
+  include/ndn-cpp/util/blob.hpp \
+  include/ndn-cpp/util/signed-blob.hpp
+
 # Just the C code.
-libndn_c_la_SOURCES = \
-  ndn-cpp/ndn-cpp-config.h \
-  ndn-cpp/c/common.h \
+libndn_c_la_SOURCES = $(ndn_cpp_c_headers) \
   ndn-cpp/c/data.h \
   ndn-cpp/c/errors.c ndn-cpp/c/errors.h \
   ndn-cpp/c/forwarding-entry.h \
-  ndn-cpp/c/forwarding-flags.c ndn-cpp/c/forwarding-flags.h \
+  ndn-cpp/c/forwarding-flags.c \
   ndn-cpp/c/interest.c ndn-cpp/c/interest.h \
-  ndn-cpp/c/key.h \
   ndn-cpp/c/name.c ndn-cpp/c/name.h \
   ndn-cpp/c/publisher-public-key-digest.h \
   ndn-cpp/c/encoding/binary-xml.h \
@@ -50,51 +94,40 @@
   ndn-cpp/c/util/ndn_realloc.c ndn-cpp/c/util/ndn_realloc.h
 
 # C++ code and also the C code.
-libndn_cpp_la_SOURCES = \
-  $(libndn_c_la_SOURCES) \
-  ndn-cpp/ndn-cpp-config.h \
-  ndn-cpp/c/common.h \
-  ndn-cpp/common.hpp ndn-cpp/common.cpp \
-  ndn-cpp/data.cpp ndn-cpp/c/data.h ndn-cpp/data.hpp \
-  ndn-cpp/face.cpp ndn-cpp/face.hpp \
-  ndn-cpp/forwarding-entry.cpp ndn-cpp/c/forwarding-entry.h ndn-cpp/forwarding-entry.hpp \
-  ndn-cpp/c/forwarding-entry.h ndn-cpp/forwarding-entry.hpp \
-  ndn-cpp/interest.cpp ndn-cpp/c/interest.h ndn-cpp/interest.hpp \
-  ndn-cpp/key.cpp ndn-cpp/c/key.h ndn-cpp/key.hpp \
-  ndn-cpp/name.cpp ndn-cpp/c/name.h ndn-cpp/name.hpp \
-  ndn-cpp/node.cpp ndn-cpp/node.hpp \
-  ndn-cpp/publisher-public-key-digest.hpp \
-  ndn-cpp/sha256-with-rsa-signature.cpp ndn-cpp/sha256-with-rsa-signature.hpp \
-  ndn-cpp/c/encoding/binary-xml.h \
-  ndn-cpp/c/encoding/binary-xml-decoder.h ndn-cpp/encoding/binary-xml-decoder.hpp \
-  ndn-cpp/c/encoding/binary-xml-element-reader.h ndn-cpp/encoding/binary-xml-element-reader.cpp ndn-cpp/encoding/binary-xml-element-reader.hpp \
-  ndn-cpp/c/encoding/binary-xml-encoder.h ndn-cpp/encoding/binary-xml-encoder.hpp ndn-cpp/c/util/dynamic-uint8-array.h \
-  ndn-cpp/c/encoding/binary-xml-structure-decoder.h ndn-cpp/encoding/binary-xml-structure-decoder.hpp \
-  ndn-cpp/encoding/binary-xml-wire-format.cpp ndn-cpp/c/encoding/binary-xml-name.h ndn-cpp/encoding/binary-xml-wire-format.hpp \
-  ndn-cpp/encoding/wire-format.cpp ndn-cpp/encoding/wire-format.hpp \
-  ndn-cpp/security/security-common.hpp \
-  ndn-cpp/security/key-chain.cpp ndn-cpp/security/key-chain.hpp \
-  ndn-cpp/security/security-exception.cpp ndn-cpp/security/security-exception.hpp \
-  ndn-cpp/security/certificate/oid.cpp ndn-cpp/security/certificate/oid.hpp \
-  ndn-cpp/security/certificate/public-key.cpp ndn-cpp/security/certificate/public-key.hpp \
-  ndn-cpp/security/encryption/encryption-manager.hpp \
-  ndn-cpp/security/identity/basic-identity-storage.cpp ndn-cpp/security/identity/basic-identity-storage.hpp \
-  ndn-cpp/security/identity/identity-manager.cpp ndn-cpp/security/identity/identity-manager.hpp \
-  ndn-cpp/security/identity/identity-storage.hpp \
-  ndn-cpp/security/identity/memory-identity-storage.cpp ndn-cpp/security/identity/memory-identity-storage.hpp \
-  ndn-cpp/security/identity/memory-private-key-storage.cpp ndn-cpp/security/identity/memory-private-key-storage.hpp \
-  ndn-cpp/security/identity/osx-private-key-storage.cpp ndn-cpp/security/identity/osx-private-key-storage.hpp \
-  ndn-cpp/security/identity/private-key-storage.hpp \
-  ndn-cpp/security/policy/no-verify-policy-manager.cpp ndn-cpp/security/policy/no-verify-policy-manager.hpp \
-  ndn-cpp/security/policy/policy-manager.hpp \
-  ndn-cpp/c/transport/socket-transport.h ndn-cpp/c/transport/tcp-transport.h ndn-cpp/transport/tcp-transport.cpp ndn-cpp/transport/tcp-transport.hpp \
-  ndn-cpp/transport/transport.cpp ndn-cpp/transport/transport.hpp \
-  ndn-cpp/c/transport/socket-transport.h ndn-cpp/c/transport/udp-transport.h ndn-cpp/transport/udp-transport.cpp ndn-cpp/transport/udp-transport.hpp \
-  ndn-cpp/util/blob.hpp \
+libndn_cpp_la_SOURCES = $(libndn_c_la_SOURCES) $(ndn_cpp_cpp_headers) \
+  ndn-cpp/common.cpp \
+  ndn-cpp/data.cpp \
+  ndn-cpp/face.cpp \
+  ndn-cpp/forwarding-entry.cpp \
+  ndn-cpp/interest.cpp \
+  ndn-cpp/key.cpp \
+  ndn-cpp/name.cpp \
+  ndn-cpp/node.cpp \
+  ndn-cpp/publisher-public-key-digest.cpp \
+  ndn-cpp/sha256-with-rsa-signature.cpp \
+  ndn-cpp/encoding/binary-xml-decoder.hpp \
+  ndn-cpp/encoding/binary-xml-encoder.hpp \
+  ndn-cpp/encoding/binary-xml-structure-decoder.hpp \
+  ndn-cpp/encoding/binary-xml-wire-format.cpp \
+  ndn-cpp/encoding/element-listener.cpp \
+  ndn-cpp/encoding/wire-format.cpp \
+  ndn-cpp/security/key-chain.cpp \
+  ndn-cpp/security/security-exception.cpp \
+  ndn-cpp/security/certificate/oid.cpp \
+  ndn-cpp/security/certificate/public-key.cpp \
+  ndn-cpp/security/identity/basic-identity-storage.cpp \
+  ndn-cpp/security/identity/identity-manager.cpp \
+  ndn-cpp/security/identity/memory-identity-storage.cpp \
+  ndn-cpp/security/identity/memory-private-key-storage.cpp \
+  ndn-cpp/security/identity/osx-private-key-storage.cpp \
+  ndn-cpp/security/policy/no-verify-policy-manager.cpp \
+  ndn-cpp/transport/tcp-transport.cpp \
+  ndn-cpp/transport/transport.cpp \
+  ndn-cpp/transport/udp-transport.cpp \
+  ndn-cpp/util/blob.cpp \
   ndn-cpp/util/changed-event.cpp ndn-cpp/util/changed-event.hpp \
   ndn-cpp/util/dynamic-uint8-vector.cpp ndn-cpp/util/dynamic-uint8-vector.hpp \
-  ndn-cpp/util/logging.cpp ndn-cpp/util/logging.hpp \
-  ndn-cpp/util/signed-blob.hpp
+  ndn-cpp/util/logging.cpp ndn-cpp/util/logging.hpp
 
 bin_test_encode_decode_forwarding_entry_SOURCES = tests/test-encode-decode-forwarding-entry.cpp
 bin_test_encode_decode_forwarding_entry_LDADD = libndn-cpp.la
diff --git a/Makefile.in b/Makefile.in
index 1815ea5..84d7443 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -135,8 +135,9 @@
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 libndn_c_la_LIBADD =
+am__objects_1 =
 am__dirstamp = $(am__leading_dot)dirstamp
-am_libndn_c_la_OBJECTS = ndn-cpp/c/errors.lo \
+am_libndn_c_la_OBJECTS = $(am__objects_1) ndn-cpp/c/errors.lo \
 	ndn-cpp/c/forwarding-flags.lo ndn-cpp/c/interest.lo \
 	ndn-cpp/c/name.lo ndn-cpp/c/encoding/binary-xml-data.lo \
 	ndn-cpp/c/encoding/binary-xml-decoder.lo \
@@ -157,9 +158,9 @@
 am__v_lt_0 = --silent
 am__v_lt_1 = 
 libndn_cpp_la_LIBADD =
-am__objects_1 = ndn-cpp/c/errors.lo ndn-cpp/c/forwarding-flags.lo \
-	ndn-cpp/c/interest.lo ndn-cpp/c/name.lo \
-	ndn-cpp/c/encoding/binary-xml-data.lo \
+am__objects_2 = $(am__objects_1) ndn-cpp/c/errors.lo \
+	ndn-cpp/c/forwarding-flags.lo ndn-cpp/c/interest.lo \
+	ndn-cpp/c/name.lo ndn-cpp/c/encoding/binary-xml-data.lo \
 	ndn-cpp/c/encoding/binary-xml-decoder.lo \
 	ndn-cpp/c/encoding/binary-xml-element-reader.lo \
 	ndn-cpp/c/encoding/binary-xml-encoder.lo \
@@ -172,12 +173,14 @@
 	ndn-cpp/c/transport/socket-transport.lo \
 	ndn-cpp/c/util/crypto.lo ndn-cpp/c/util/dynamic-uint8-array.lo \
 	ndn-cpp/c/util/ndn_memory.lo ndn-cpp/c/util/ndn_realloc.lo
-am_libndn_cpp_la_OBJECTS = $(am__objects_1) ndn-cpp/common.lo \
-	ndn-cpp/data.lo ndn-cpp/face.lo ndn-cpp/forwarding-entry.lo \
-	ndn-cpp/interest.lo ndn-cpp/key.lo ndn-cpp/name.lo \
-	ndn-cpp/node.lo ndn-cpp/sha256-with-rsa-signature.lo \
-	ndn-cpp/encoding/binary-xml-element-reader.lo \
+am_libndn_cpp_la_OBJECTS = $(am__objects_2) $(am__objects_1) \
+	ndn-cpp/common.lo ndn-cpp/data.lo ndn-cpp/face.lo \
+	ndn-cpp/forwarding-entry.lo ndn-cpp/interest.lo ndn-cpp/key.lo \
+	ndn-cpp/name.lo ndn-cpp/node.lo \
+	ndn-cpp/publisher-public-key-digest.lo \
+	ndn-cpp/sha256-with-rsa-signature.lo \
 	ndn-cpp/encoding/binary-xml-wire-format.lo \
+	ndn-cpp/encoding/element-listener.lo \
 	ndn-cpp/encoding/wire-format.lo ndn-cpp/security/key-chain.lo \
 	ndn-cpp/security/security-exception.lo \
 	ndn-cpp/security/certificate/oid.lo \
@@ -190,7 +193,7 @@
 	ndn-cpp/security/policy/no-verify-policy-manager.lo \
 	ndn-cpp/transport/tcp-transport.lo \
 	ndn-cpp/transport/transport.lo \
-	ndn-cpp/transport/udp-transport.lo \
+	ndn-cpp/transport/udp-transport.lo ndn-cpp/util/blob.lo \
 	ndn-cpp/util/changed-event.lo \
 	ndn-cpp/util/dynamic-uint8-vector.lo ndn-cpp/util/logging.lo
 libndn_cpp_la_OBJECTS = $(am_libndn_cpp_la_OBJECTS)
@@ -549,16 +552,62 @@
 SUBDIRS = include
 lib_LTLIBRARIES = libndn-c.la libndn-cpp.la
 
+# Public C headers.
+ndn_cpp_c_headers = \
+  include/ndn-cpp/ndn-cpp-config.h \
+  include/ndn-cpp/c/common.h \
+  include/ndn-cpp/c/data-types.h \
+  include/ndn-cpp/c/forwarding-flags.h \
+  include/ndn-cpp/c/interest-types.h \
+  include/ndn-cpp/c/key-types.h \
+  include/ndn-cpp/c/encoding/element-listener.h
+
+
+# Public C++ headers.
+ndn_cpp_cpp_headers = \
+  include/ndn-cpp/common.hpp \
+  include/ndn-cpp/data.hpp \
+  include/ndn-cpp/face.hpp \
+  include/ndn-cpp/forwarding-entry.hpp \
+  include/ndn-cpp/forwarding-flags.hpp \
+  include/ndn-cpp/interest.hpp \
+  include/ndn-cpp/key.hpp \
+  include/ndn-cpp/name.hpp \
+  include/ndn-cpp/node.hpp \
+  include/ndn-cpp/publisher-public-key-digest.hpp \
+  include/ndn-cpp/sha256-with-rsa-signature.hpp \
+  include/ndn-cpp/encoding/element-listener.hpp \
+  include/ndn-cpp/encoding/binary-xml-wire-format.hpp \
+  include/ndn-cpp/encoding/wire-format.hpp \
+  include/ndn-cpp/security/security-common.hpp \
+  include/ndn-cpp/security/key-chain.hpp \
+  include/ndn-cpp/security/security-exception.hpp \
+  include/ndn-cpp/security/certificate/oid.hpp \
+  include/ndn-cpp/security/certificate/public-key.hpp \
+  include/ndn-cpp/security/encryption/encryption-manager.hpp \
+  include/ndn-cpp/security/identity/basic-identity-storage.hpp \
+  include/ndn-cpp/security/identity/identity-manager.hpp \
+  include/ndn-cpp/security/identity/identity-storage.hpp \
+  include/ndn-cpp/security/identity/memory-identity-storage.hpp \
+  include/ndn-cpp/security/identity/memory-private-key-storage.hpp \
+  include/ndn-cpp/security/identity/osx-private-key-storage.hpp \
+  include/ndn-cpp/security/identity/private-key-storage.hpp \
+  include/ndn-cpp/security/policy/no-verify-policy-manager.hpp \
+  include/ndn-cpp/security/policy/policy-manager.hpp \
+  include/ndn-cpp/transport/tcp-transport.hpp \
+  include/ndn-cpp/transport/transport.hpp \
+  include/ndn-cpp/transport/udp-transport.hpp \
+  include/ndn-cpp/util/blob.hpp \
+  include/ndn-cpp/util/signed-blob.hpp
+
+
 # Just the C code.
-libndn_c_la_SOURCES = \
-  ndn-cpp/ndn-cpp-config.h \
-  ndn-cpp/c/common.h \
+libndn_c_la_SOURCES = $(ndn_cpp_c_headers) \
   ndn-cpp/c/data.h \
   ndn-cpp/c/errors.c ndn-cpp/c/errors.h \
   ndn-cpp/c/forwarding-entry.h \
-  ndn-cpp/c/forwarding-flags.c ndn-cpp/c/forwarding-flags.h \
+  ndn-cpp/c/forwarding-flags.c \
   ndn-cpp/c/interest.c ndn-cpp/c/interest.h \
-  ndn-cpp/c/key.h \
   ndn-cpp/c/name.c ndn-cpp/c/name.h \
   ndn-cpp/c/publisher-public-key-digest.h \
   ndn-cpp/c/encoding/binary-xml.h \
@@ -583,51 +632,40 @@
 
 
 # C++ code and also the C code.
-libndn_cpp_la_SOURCES = \
-  $(libndn_c_la_SOURCES) \
-  ndn-cpp/ndn-cpp-config.h \
-  ndn-cpp/c/common.h \
-  ndn-cpp/common.hpp ndn-cpp/common.cpp \
-  ndn-cpp/data.cpp ndn-cpp/c/data.h ndn-cpp/data.hpp \
-  ndn-cpp/face.cpp ndn-cpp/face.hpp \
-  ndn-cpp/forwarding-entry.cpp ndn-cpp/c/forwarding-entry.h ndn-cpp/forwarding-entry.hpp \
-  ndn-cpp/c/forwarding-entry.h ndn-cpp/forwarding-entry.hpp \
-  ndn-cpp/interest.cpp ndn-cpp/c/interest.h ndn-cpp/interest.hpp \
-  ndn-cpp/key.cpp ndn-cpp/c/key.h ndn-cpp/key.hpp \
-  ndn-cpp/name.cpp ndn-cpp/c/name.h ndn-cpp/name.hpp \
-  ndn-cpp/node.cpp ndn-cpp/node.hpp \
-  ndn-cpp/publisher-public-key-digest.hpp \
-  ndn-cpp/sha256-with-rsa-signature.cpp ndn-cpp/sha256-with-rsa-signature.hpp \
-  ndn-cpp/c/encoding/binary-xml.h \
-  ndn-cpp/c/encoding/binary-xml-decoder.h ndn-cpp/encoding/binary-xml-decoder.hpp \
-  ndn-cpp/c/encoding/binary-xml-element-reader.h ndn-cpp/encoding/binary-xml-element-reader.cpp ndn-cpp/encoding/binary-xml-element-reader.hpp \
-  ndn-cpp/c/encoding/binary-xml-encoder.h ndn-cpp/encoding/binary-xml-encoder.hpp ndn-cpp/c/util/dynamic-uint8-array.h \
-  ndn-cpp/c/encoding/binary-xml-structure-decoder.h ndn-cpp/encoding/binary-xml-structure-decoder.hpp \
-  ndn-cpp/encoding/binary-xml-wire-format.cpp ndn-cpp/c/encoding/binary-xml-name.h ndn-cpp/encoding/binary-xml-wire-format.hpp \
-  ndn-cpp/encoding/wire-format.cpp ndn-cpp/encoding/wire-format.hpp \
-  ndn-cpp/security/security-common.hpp \
-  ndn-cpp/security/key-chain.cpp ndn-cpp/security/key-chain.hpp \
-  ndn-cpp/security/security-exception.cpp ndn-cpp/security/security-exception.hpp \
-  ndn-cpp/security/certificate/oid.cpp ndn-cpp/security/certificate/oid.hpp \
-  ndn-cpp/security/certificate/public-key.cpp ndn-cpp/security/certificate/public-key.hpp \
-  ndn-cpp/security/encryption/encryption-manager.hpp \
-  ndn-cpp/security/identity/basic-identity-storage.cpp ndn-cpp/security/identity/basic-identity-storage.hpp \
-  ndn-cpp/security/identity/identity-manager.cpp ndn-cpp/security/identity/identity-manager.hpp \
-  ndn-cpp/security/identity/identity-storage.hpp \
-  ndn-cpp/security/identity/memory-identity-storage.cpp ndn-cpp/security/identity/memory-identity-storage.hpp \
-  ndn-cpp/security/identity/memory-private-key-storage.cpp ndn-cpp/security/identity/memory-private-key-storage.hpp \
-  ndn-cpp/security/identity/osx-private-key-storage.cpp ndn-cpp/security/identity/osx-private-key-storage.hpp \
-  ndn-cpp/security/identity/private-key-storage.hpp \
-  ndn-cpp/security/policy/no-verify-policy-manager.cpp ndn-cpp/security/policy/no-verify-policy-manager.hpp \
-  ndn-cpp/security/policy/policy-manager.hpp \
-  ndn-cpp/c/transport/socket-transport.h ndn-cpp/c/transport/tcp-transport.h ndn-cpp/transport/tcp-transport.cpp ndn-cpp/transport/tcp-transport.hpp \
-  ndn-cpp/transport/transport.cpp ndn-cpp/transport/transport.hpp \
-  ndn-cpp/c/transport/socket-transport.h ndn-cpp/c/transport/udp-transport.h ndn-cpp/transport/udp-transport.cpp ndn-cpp/transport/udp-transport.hpp \
-  ndn-cpp/util/blob.hpp \
+libndn_cpp_la_SOURCES = $(libndn_c_la_SOURCES) $(ndn_cpp_cpp_headers) \
+  ndn-cpp/common.cpp \
+  ndn-cpp/data.cpp \
+  ndn-cpp/face.cpp \
+  ndn-cpp/forwarding-entry.cpp \
+  ndn-cpp/interest.cpp \
+  ndn-cpp/key.cpp \
+  ndn-cpp/name.cpp \
+  ndn-cpp/node.cpp \
+  ndn-cpp/publisher-public-key-digest.cpp \
+  ndn-cpp/sha256-with-rsa-signature.cpp \
+  ndn-cpp/encoding/binary-xml-decoder.hpp \
+  ndn-cpp/encoding/binary-xml-encoder.hpp \
+  ndn-cpp/encoding/binary-xml-structure-decoder.hpp \
+  ndn-cpp/encoding/binary-xml-wire-format.cpp \
+  ndn-cpp/encoding/element-listener.cpp \
+  ndn-cpp/encoding/wire-format.cpp \
+  ndn-cpp/security/key-chain.cpp \
+  ndn-cpp/security/security-exception.cpp \
+  ndn-cpp/security/certificate/oid.cpp \
+  ndn-cpp/security/certificate/public-key.cpp \
+  ndn-cpp/security/identity/basic-identity-storage.cpp \
+  ndn-cpp/security/identity/identity-manager.cpp \
+  ndn-cpp/security/identity/memory-identity-storage.cpp \
+  ndn-cpp/security/identity/memory-private-key-storage.cpp \
+  ndn-cpp/security/identity/osx-private-key-storage.cpp \
+  ndn-cpp/security/policy/no-verify-policy-manager.cpp \
+  ndn-cpp/transport/tcp-transport.cpp \
+  ndn-cpp/transport/transport.cpp \
+  ndn-cpp/transport/udp-transport.cpp \
+  ndn-cpp/util/blob.cpp \
   ndn-cpp/util/changed-event.cpp ndn-cpp/util/changed-event.hpp \
   ndn-cpp/util/dynamic-uint8-vector.cpp ndn-cpp/util/dynamic-uint8-vector.hpp \
-  ndn-cpp/util/logging.cpp ndn-cpp/util/logging.hpp \
-  ndn-cpp/util/signed-blob.hpp
+  ndn-cpp/util/logging.cpp ndn-cpp/util/logging.hpp
 
 bin_test_encode_decode_forwarding_entry_SOURCES = tests/test-encode-decode-forwarding-entry.cpp
 bin_test_encode_decode_forwarding_entry_LDADD = libndn-cpp.la
@@ -812,6 +850,8 @@
 	ndn-cpp/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/node.lo: ndn-cpp/$(am__dirstamp) \
 	ndn-cpp/$(DEPDIR)/$(am__dirstamp)
+ndn-cpp/publisher-public-key-digest.lo: ndn-cpp/$(am__dirstamp) \
+	ndn-cpp/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/sha256-with-rsa-signature.lo: ndn-cpp/$(am__dirstamp) \
 	ndn-cpp/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/encoding/$(am__dirstamp):
@@ -820,10 +860,10 @@
 ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) ndn-cpp/encoding/$(DEPDIR)
 	@: > ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
-ndn-cpp/encoding/binary-xml-element-reader.lo:  \
+ndn-cpp/encoding/binary-xml-wire-format.lo:  \
 	ndn-cpp/encoding/$(am__dirstamp) \
 	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
-ndn-cpp/encoding/binary-xml-wire-format.lo:  \
+ndn-cpp/encoding/element-listener.lo:  \
 	ndn-cpp/encoding/$(am__dirstamp) \
 	ndn-cpp/encoding/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/encoding/wire-format.lo: ndn-cpp/encoding/$(am__dirstamp) \
@@ -899,6 +939,8 @@
 ndn-cpp/util/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) ndn-cpp/util/$(DEPDIR)
 	@: > ndn-cpp/util/$(DEPDIR)/$(am__dirstamp)
+ndn-cpp/util/blob.lo: ndn-cpp/util/$(am__dirstamp) \
+	ndn-cpp/util/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/util/changed-event.lo: ndn-cpp/util/$(am__dirstamp) \
 	ndn-cpp/util/$(DEPDIR)/$(am__dirstamp)
 ndn-cpp/util/dynamic-uint8-vector.lo: ndn-cpp/util/$(am__dirstamp) \
@@ -1036,6 +1078,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/key.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/name.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/node.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/publisher-public-key-digest.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/sha256-with-rsa-signature.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/c/$(DEPDIR)/errors.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/c/$(DEPDIR)/forwarding-flags.Plo@am__quote@
@@ -1056,8 +1099,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/c/util/$(DEPDIR)/dynamic-uint8-array.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/c/util/$(DEPDIR)/ndn_memory.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/c/util/$(DEPDIR)/ndn_realloc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/encoding/$(DEPDIR)/binary-xml-element-reader.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/encoding/$(DEPDIR)/binary-xml-wire-format.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/encoding/$(DEPDIR)/element-listener.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/encoding/$(DEPDIR)/wire-format.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/security/$(DEPDIR)/key-chain.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/security/$(DEPDIR)/security-exception.Plo@am__quote@
@@ -1072,6 +1115,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/transport/$(DEPDIR)/tcp-transport.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/transport/$(DEPDIR)/transport.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/transport/$(DEPDIR)/udp-transport.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/util/$(DEPDIR)/blob.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/util/$(DEPDIR)/changed-event.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/util/$(DEPDIR)/dynamic-uint8-vector.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/util/$(DEPDIR)/logging.Plo@am__quote@
diff --git a/include/Makefile.am b/include/Makefile.am
index ce3321c..409f202 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -3,7 +3,55 @@
 # These files are included by the application with, for example
 # #include <ndn-cpp/namp.hpp>
 # Internal include headers are not put in this public install directory.
-ndnboost_files = \
+
+# Public C headers.
+ndn_cpp_c_headers = \
+  ndn-cpp/ndn-cpp-config.h \
+  ndn-cpp/c/common.h \
+  ndn-cpp/c/data-types.h \
+  ndn-cpp/c/forwarding-flags.h \
+  ndn-cpp/c/interest-types.h \
+  ndn-cpp/c/key-types.h \
+  ndn-cpp/c/encoding/element-listener.h
+
+# Public C++ headers.
+ndn_cpp_cpp_headers = \
+  ndn-cpp/common.hpp \
+  ndn-cpp/data.hpp \
+  ndn-cpp/face.hpp \
+  ndn-cpp/forwarding-entry.hpp \
+  ndn-cpp/forwarding-flags.hpp \
+  ndn-cpp/interest.hpp \
+  ndn-cpp/key.hpp \
+  ndn-cpp/name.hpp \
+  ndn-cpp/node.hpp \
+  ndn-cpp/publisher-public-key-digest.hpp \
+  ndn-cpp/sha256-with-rsa-signature.hpp \
+  ndn-cpp/encoding/element-listener.hpp \
+  ndn-cpp/encoding/binary-xml-wire-format.hpp \
+  ndn-cpp/encoding/wire-format.hpp \
+  ndn-cpp/security/security-common.hpp \
+  ndn-cpp/security/key-chain.hpp \
+  ndn-cpp/security/security-exception.hpp \
+  ndn-cpp/security/certificate/oid.hpp \
+  ndn-cpp/security/certificate/public-key.hpp \
+  ndn-cpp/security/encryption/encryption-manager.hpp \
+  ndn-cpp/security/identity/basic-identity-storage.hpp \
+  ndn-cpp/security/identity/identity-manager.hpp \
+  ndn-cpp/security/identity/identity-storage.hpp \
+  ndn-cpp/security/identity/memory-identity-storage.hpp \
+  ndn-cpp/security/identity/memory-private-key-storage.hpp \
+  ndn-cpp/security/identity/osx-private-key-storage.hpp \
+  ndn-cpp/security/identity/private-key-storage.hpp \
+  ndn-cpp/security/policy/no-verify-policy-manager.hpp \
+  ndn-cpp/security/policy/policy-manager.hpp \
+  ndn-cpp/transport/tcp-transport.hpp \
+  ndn-cpp/transport/transport.hpp \
+  ndn-cpp/transport/udp-transport.hpp \
+  ndn-cpp/util/blob.hpp \
+  ndn-cpp/util/signed-blob.hpp
+
+ndnboost_headers = \
   ndnboost/algorithm/string/compare.hpp \
   ndnboost/algorithm/string/concept.hpp \
   ndnboost/algorithm/string/config.hpp \
@@ -1757,5 +1805,4 @@
   ndnboost/visit_each.hpp \
   ndnboost/weak_ptr.hpp
 
-nobase_include_HEADERS = $(ndnboost_files) \
-  ndn-cpp/ndn-cpp-config.h
+nobase_include_HEADERS = $(ndn_cpp_c_headers) $(ndn_cpp_cpp_headers) $(ndnboost_headers)
diff --git a/include/Makefile.in b/include/Makefile.in
index fc102ed..c4fc005 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -14,6 +14,12 @@
 
 @SET_MAKE@
 
+# "make install" will install these in the install include directory, for example
+# /usr/local/include/ndn-cpp/name.hpp.
+# These files are included by the application with, for example
+# #include <ndn-cpp/namp.hpp>
+# Internal include headers are not put in this public install directory.
+
 VPATH = @srcdir@
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
 am__make_running_with_option = \
@@ -314,12 +320,55 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
-# "make install" will install these in the install include directory, for example
-# /usr/local/include/ndn-cpp/name.hpp.
-# These files are included by the application with, for example
-# #include <ndn-cpp/namp.hpp>
-# Internal include headers are not put in this public install directory.
-ndnboost_files = \
+# Public C headers.
+ndn_cpp_c_headers = \
+  ndn-cpp/ndn-cpp-config.h \
+  ndn-cpp/c/common.h \
+  ndn-cpp/c/data-types.h \
+  ndn-cpp/c/forwarding-flags.h \
+  ndn-cpp/c/interest-types.h \
+  ndn-cpp/c/key-types.h \
+  ndn-cpp/c/encoding/element-listener.h
+
+
+# Public C++ headers.
+ndn_cpp_cpp_headers = \
+  ndn-cpp/common.hpp \
+  ndn-cpp/data.hpp \
+  ndn-cpp/face.hpp \
+  ndn-cpp/forwarding-entry.hpp \
+  ndn-cpp/forwarding-flags.hpp \
+  ndn-cpp/interest.hpp \
+  ndn-cpp/key.hpp \
+  ndn-cpp/name.hpp \
+  ndn-cpp/node.hpp \
+  ndn-cpp/publisher-public-key-digest.hpp \
+  ndn-cpp/sha256-with-rsa-signature.hpp \
+  ndn-cpp/encoding/element-listener.hpp \
+  ndn-cpp/encoding/binary-xml-wire-format.hpp \
+  ndn-cpp/encoding/wire-format.hpp \
+  ndn-cpp/security/security-common.hpp \
+  ndn-cpp/security/key-chain.hpp \
+  ndn-cpp/security/security-exception.hpp \
+  ndn-cpp/security/certificate/oid.hpp \
+  ndn-cpp/security/certificate/public-key.hpp \
+  ndn-cpp/security/encryption/encryption-manager.hpp \
+  ndn-cpp/security/identity/basic-identity-storage.hpp \
+  ndn-cpp/security/identity/identity-manager.hpp \
+  ndn-cpp/security/identity/identity-storage.hpp \
+  ndn-cpp/security/identity/memory-identity-storage.hpp \
+  ndn-cpp/security/identity/memory-private-key-storage.hpp \
+  ndn-cpp/security/identity/osx-private-key-storage.hpp \
+  ndn-cpp/security/identity/private-key-storage.hpp \
+  ndn-cpp/security/policy/no-verify-policy-manager.hpp \
+  ndn-cpp/security/policy/policy-manager.hpp \
+  ndn-cpp/transport/tcp-transport.hpp \
+  ndn-cpp/transport/transport.hpp \
+  ndn-cpp/transport/udp-transport.hpp \
+  ndn-cpp/util/blob.hpp \
+  ndn-cpp/util/signed-blob.hpp
+
+ndnboost_headers = \
   ndnboost/algorithm/string/compare.hpp \
   ndnboost/algorithm/string/concept.hpp \
   ndnboost/algorithm/string/config.hpp \
@@ -2073,9 +2122,7 @@
   ndnboost/visit_each.hpp \
   ndnboost/weak_ptr.hpp
 
-nobase_include_HEADERS = $(ndnboost_files) \
-  ndn-cpp/ndn-cpp-config.h
-
+nobase_include_HEADERS = $(ndn_cpp_c_headers) $(ndn_cpp_cpp_headers) $(ndnboost_headers)
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
diff --git a/ndn-cpp/c/common.h b/include/ndn-cpp/c/common.h
similarity index 81%
rename from ndn-cpp/c/common.h
rename to include/ndn-cpp/c/common.h
index 48e2ec2..7f47f7a 100644
--- a/ndn-cpp/c/common.h
+++ b/include/ndn-cpp/c/common.h
@@ -7,8 +7,9 @@
 #ifndef NDN_COMMON_H
 #define	NDN_COMMON_H
 
-#include <ndn-cpp/ndn-cpp-config.h>
+#include "../ndn-cpp-config.h"
 #include <stdint.h>
+// TODO: Is stddef.h portable?
 #include <stddef.h>
 
 #endif
diff --git a/include/ndn-cpp/c/data-types.h b/include/ndn-cpp/c/data-types.h
new file mode 100644
index 0000000..3c2abce
--- /dev/null
+++ b/include/ndn-cpp/c/data-types.h
@@ -0,0 +1,27 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_DATA_TYPES_H
+#define	NDN_DATA_TYPES_H
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+  ndn_ContentType_DATA = 0,
+  ndn_ContentType_ENCR = 1,
+  ndn_ContentType_GONE = 2,
+  ndn_ContentType_KEY =  3,
+  ndn_ContentType_LINK = 4,
+  ndn_ContentType_NACK = 5
+} ndn_ContentType;
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif
diff --git a/include/ndn-cpp/c/encoding/element-listener.h b/include/ndn-cpp/c/encoding/element-listener.h
new file mode 100644
index 0000000..af88a85
--- /dev/null
+++ b/include/ndn-cpp/c/encoding/element-listener.h
@@ -0,0 +1,39 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_ELEMENT_LISTENER_H
+#define NDN_ELEMENT_LISTENER_H
+
+#include "../common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** An ndn_ElementListener struct holds a function pointer onReceivedElement.  You can extend this struct with data that
+ * will be passed to onReceivedElement.
+ */
+struct ndn_ElementListener {
+  void (*onReceivedElement)(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength); /**< see ndn_ElementListener_initialize */
+};
+
+/**
+ * Initialize an ndn_ElementListener struct to use the onReceivedElement function pointer.
+ * @param self pointer to the ndn_ElementListener struct
+ * @param onReceivedElement pointer to a function which is called when an entire binary XML element is received.
+ * self is the pointer to this ndn_ElementListener struct.  See ndn_BinaryXmlElementReader_onReceivedData.
+ */
+static inline void ndn_ElementListener_initialize
+  (struct ndn_ElementListener *self, void (*onReceivedElement)(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength))
+{
+  self->onReceivedElement = onReceivedElement;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/ndn-cpp/c/forwarding-flags.h b/include/ndn-cpp/c/forwarding-flags.h
similarity index 100%
rename from ndn-cpp/c/forwarding-flags.h
rename to include/ndn-cpp/c/forwarding-flags.h
diff --git a/include/ndn-cpp/c/interest-types.h b/include/ndn-cpp/c/interest-types.h
new file mode 100644
index 0000000..d6a5e51
--- /dev/null
+++ b/include/ndn-cpp/c/interest-types.h
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_INTEREST_TYPES_H
+#define	NDN_INTEREST_TYPES_H
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+  ndn_Exclude_COMPONENT = 0,
+  ndn_Exclude_ANY = 1  
+} ndn_ExcludeType;
+
+
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif
diff --git a/include/ndn-cpp/c/key-types.h b/include/ndn-cpp/c/key-types.h
new file mode 100644
index 0000000..712aee8
--- /dev/null
+++ b/include/ndn-cpp/c/key-types.h
@@ -0,0 +1,31 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_KEY_TYPES_H
+#define NDN_KEY_TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+  ndn_KeyLocatorType_KEY = 1,
+  ndn_KeyLocatorType_CERTIFICATE = 2,
+  ndn_KeyLocatorType_KEYNAME = 3
+} ndn_KeyLocatorType;
+
+typedef enum {
+  ndn_KeyNameType_PUBLISHER_PUBLIC_KEY_DIGEST = 1,
+  ndn_KeyNameType_PUBLISHER_CERTIFICATE_DIGEST = 2,
+  ndn_KeyNameType_PUBLISHER_ISSUER_KEY_DIGEST = 3,
+  ndn_KeyNameType_PUBLISHER_ISSUER_CERTIFICATE_DIGEST = 4
+} ndn_KeyNameType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/ndn-cpp/common.hpp b/include/ndn-cpp/common.hpp
similarity index 94%
rename from ndn-cpp/common.hpp
rename to include/ndn-cpp/common.hpp
index b9b02c7..e9d0c88 100644
--- a/ndn-cpp/common.hpp
+++ b/include/ndn-cpp/common.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,7 +9,7 @@
 #define NDN_COMMON_HPP
 
 #include <vector>
-// common.h includes ndn-cpp-config.h.
+// common.h include ndn-cpp-config.h.
 #include "c/common.h"
 
 // Depending on where ./configure found shared_ptr, define the ptr_lib namespace.
diff --git a/ndn-cpp/data.hpp b/include/ndn-cpp/data.hpp
similarity index 97%
rename from ndn-cpp/data.hpp
rename to include/ndn-cpp/data.hpp
index f8cc893..0fe4c99 100644
--- a/ndn-cpp/data.hpp
+++ b/include/ndn-cpp/data.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -10,7 +11,12 @@
 #include "common.hpp"
 #include "name.hpp"
 #include "util/signed-blob.hpp"
-#include "c/data.h"
+#include "c/data-types.h"
+#include "encoding/wire-format.hpp"
+
+struct ndn_MetaInfo;
+struct ndn_Signature;
+struct ndn_Data;
 
 namespace ndn {
 
diff --git a/ndn-cpp/encoding/binary-xml-wire-format.hpp b/include/ndn-cpp/encoding/binary-xml-wire-format.hpp
similarity index 97%
rename from ndn-cpp/encoding/binary-xml-wire-format.hpp
rename to include/ndn-cpp/encoding/binary-xml-wire-format.hpp
index c169669..cb4f0aa 100644
--- a/ndn-cpp/encoding/binary-xml-wire-format.hpp
+++ b/include/ndn-cpp/encoding/binary-xml-wire-format.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/encoding/binary-xml-element-reader.hpp b/include/ndn-cpp/encoding/element-listener.hpp
similarity index 87%
rename from ndn-cpp/encoding/binary-xml-element-reader.hpp
rename to include/ndn-cpp/encoding/element-listener.hpp
index f353e97..7d13312 100644
--- a/ndn-cpp/encoding/binary-xml-element-reader.hpp
+++ b/include/ndn-cpp/encoding/element-listener.hpp
@@ -1,13 +1,14 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
  */
 
-#ifndef NDN_BINARYXMLELEMENTREADER_HPP
-#define NDN_BINARYXMLELEMENTREADER_HPP
+#ifndef NDN_ELEMENT_LISTENER_HPP
+#define NDN_ELEMENT_LISTENER_HPP
 
-#include "../c/encoding/binary-xml-element-reader.h"
+#include "../c/encoding/element-listener.h"
 
 namespace ndn {
 
diff --git a/ndn-cpp/encoding/wire-format.hpp b/include/ndn-cpp/encoding/wire-format.hpp
similarity index 98%
rename from ndn-cpp/encoding/wire-format.hpp
rename to include/ndn-cpp/encoding/wire-format.hpp
index c5b4c6e..1a40cd1 100644
--- a/ndn-cpp/encoding/wire-format.hpp
+++ b/include/ndn-cpp/encoding/wire-format.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/face.hpp b/include/ndn-cpp/face.hpp
similarity index 98%
rename from ndn-cpp/face.hpp
rename to include/ndn-cpp/face.hpp
index 8eab12a..7859000 100644
--- a/ndn-cpp/face.hpp
+++ b/include/ndn-cpp/face.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/forwarding-entry.hpp b/include/ndn-cpp/forwarding-entry.hpp
similarity index 96%
rename from ndn-cpp/forwarding-entry.hpp
rename to include/ndn-cpp/forwarding-entry.hpp
index 1bd15fa..675b56b 100644
--- a/ndn-cpp/forwarding-entry.hpp
+++ b/include/ndn-cpp/forwarding-entry.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -11,7 +12,9 @@
 #include "name.hpp"
 #include "publisher-public-key-digest.hpp"
 #include "forwarding-flags.hpp"
-#include "c/forwarding-entry.h"
+#include "encoding/wire-format.hpp"
+
+struct ndn_ForwardingEntry;
 
 namespace ndn {
 
diff --git a/ndn-cpp/forwarding-flags.hpp b/include/ndn-cpp/forwarding-flags.hpp
similarity index 100%
rename from ndn-cpp/forwarding-flags.hpp
rename to include/ndn-cpp/forwarding-flags.hpp
diff --git a/ndn-cpp/interest.hpp b/include/ndn-cpp/interest.hpp
similarity index 96%
rename from ndn-cpp/interest.hpp
rename to include/ndn-cpp/interest.hpp
index de4f00e..955d681 100644
--- a/ndn-cpp/interest.hpp
+++ b/include/ndn-cpp/interest.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -9,7 +10,12 @@
 
 #include "name.hpp"
 #include "publisher-public-key-digest.hpp"
-#include "c/interest.h"
+#include "c/interest-types.h"
+#include "encoding/wire-format.hpp"
+
+struct ndn_ExcludeEntry;
+struct ndn_Exclude;
+struct ndn_Interest;
 
 namespace ndn {
   
@@ -40,12 +46,7 @@
    * @param excludeEntryStruct the C ndn_NameComponent struct to receive the pointer
    */
   void 
-  get(struct ndn_ExcludeEntry& excludeEntryStruct) const 
-  {
-    excludeEntryStruct.type = type_;
-    if (type_ == ndn_Exclude_COMPONENT)
-      component_.get(excludeEntryStruct.component);
-  }
+  get(struct ndn_ExcludeEntry& excludeEntryStruct) const;
   
   ndn_ExcludeType getType() const { return type_; }
   
diff --git a/ndn-cpp/key.hpp b/include/ndn-cpp/key.hpp
similarity index 96%
rename from ndn-cpp/key.hpp
rename to include/ndn-cpp/key.hpp
index 6bfd779..83230f6 100644
--- a/ndn-cpp/key.hpp
+++ b/include/ndn-cpp/key.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,9 +9,11 @@
 #define NDN_KEY_HPP
 
 #include <vector>
-#include "c/key.h"
+#include "c/key-types.h"
 #include "name.hpp"
 
+struct ndn_KeyLocator;
+
 namespace ndn {
   
 class KeyLocator {
diff --git a/ndn-cpp/name.hpp b/include/ndn-cpp/name.hpp
similarity index 97%
rename from ndn-cpp/name.hpp
rename to include/ndn-cpp/name.hpp
index 3adf841..59caef8 100644
--- a/ndn-cpp/name.hpp
+++ b/include/ndn-cpp/name.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -12,10 +13,11 @@
 #include <vector>
 #include <string>
 #include <sstream>
-#include "c/name.h"
-#include "encoding/binary-xml-wire-format.hpp"
 #include "util/blob.hpp"
 
+struct ndn_NameComponent;
+struct ndn_Name;
+
 namespace ndn {
     
 class Name {
@@ -66,10 +68,7 @@
      * @param componentStruct The C ndn_NameComponent struct to receive the pointer.
      */
     void 
-    get(struct ndn_NameComponent& componentStruct) const 
-    {
-      value_.get(componentStruct.value);
-    }
+    get(struct ndn_NameComponent& componentStruct) const;
   
     const Blob& 
     getValue() const { return value_; }
@@ -102,12 +101,7 @@
      * @return The integer number.
      */
     uint64_t
-    toNumber() const
-    {
-      struct ndn_NameComponent componentStruct;
-      get(componentStruct);
-      return ndn_NameComponent_toNumber(&componentStruct);
-    }
+    toNumber() const;
 
     /**
      * Interpret this name component as a network-ordered number with a marker and return an integer.
diff --git a/ndn-cpp/node.hpp b/include/ndn-cpp/node.hpp
similarity index 97%
rename from ndn-cpp/node.hpp
rename to include/ndn-cpp/node.hpp
index 24a2672..882ecd8 100644
--- a/ndn-cpp/node.hpp
+++ b/include/ndn-cpp/node.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -11,8 +12,10 @@
 #include "interest.hpp"
 #include "data.hpp"
 #include "transport/tcp-transport.hpp"
-#include "encoding/binary-xml-element-reader.hpp"
 #include "forwarding-flags.hpp"
+#include "encoding/element-listener.hpp"
+
+struct ndn_Interest;
 
 namespace ndn {
 
@@ -163,7 +166,7 @@
     const struct ndn_Interest& 
     getInterestStruct()
     {
-      return interestStruct_;
+      return *interestStruct_;
     }
     
     /**
@@ -179,7 +182,7 @@
     ptr_lib::shared_ptr<const Interest> interest_;
     std::vector<struct ndn_NameComponent> nameComponents_;
     std::vector<struct ndn_ExcludeEntry> excludeEntries_;
-    struct ndn_Interest interestStruct_;
+    ptr_lib::shared_ptr<struct ndn_Interest> interestStruct_;
   
     static uint64_t lastPendingInterestId_; /**< A class variable used to get the next unique ID. */
     uint64_t pendingInterestId_;            /**< A unique identifier for this entry so it can be deleted */
diff --git a/ndn-cpp/publisher-public-key-digest.hpp b/include/ndn-cpp/publisher-public-key-digest.hpp
similarity index 90%
rename from ndn-cpp/publisher-public-key-digest.hpp
rename to include/ndn-cpp/publisher-public-key-digest.hpp
index 8069fa0..ad60ef4 100644
--- a/ndn-cpp/publisher-public-key-digest.hpp
+++ b/include/ndn-cpp/publisher-public-key-digest.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -9,7 +10,9 @@
 
 #include <vector>
 #include "common.hpp"
-#include "c/publisher-public-key-digest.h"
+#include "util/blob.hpp"
+
+struct ndn_PublisherPublicKeyDigest;
 
 namespace ndn {
   
@@ -28,20 +31,14 @@
    * @param publisherPublicKeyDigestStruct a C ndn_PublisherPublicKeyDigest struct to receive the pointer
    */
   void 
-  get(struct ndn_PublisherPublicKeyDigest& publisherPublicKeyDigestStruct) const 
-  {
-    publisherPublicKeyDigest_.get(publisherPublicKeyDigestStruct.publisherPublicKeyDigest);
-  }
+  get(struct ndn_PublisherPublicKeyDigest& publisherPublicKeyDigestStruct) const;
   
   /**
    * Clear this PublisherPublicKeyDigest, and copy from the ndn_PublisherPublicKeyDigest struct.
    * @param excludeStruct a C ndn_Exclude struct
    */
   void 
-  set(const struct ndn_PublisherPublicKeyDigest& publisherPublicKeyDigestStruct) 
-  {
-    publisherPublicKeyDigest_ = Blob(publisherPublicKeyDigestStruct.publisherPublicKeyDigest);
-  }
+  set(const struct ndn_PublisherPublicKeyDigest& publisherPublicKeyDigestStruct);
 
   const Blob& 
   getPublisherPublicKeyDigest() const { return publisherPublicKeyDigest_; }
diff --git a/ndn-cpp/security/certificate/certificate.hpp b/include/ndn-cpp/security/certificate/certificate.hpp
similarity index 100%
rename from ndn-cpp/security/certificate/certificate.hpp
rename to include/ndn-cpp/security/certificate/certificate.hpp
diff --git a/ndn-cpp/security/certificate/oid.hpp b/include/ndn-cpp/security/certificate/oid.hpp
similarity index 100%
rename from ndn-cpp/security/certificate/oid.hpp
rename to include/ndn-cpp/security/certificate/oid.hpp
diff --git a/ndn-cpp/security/certificate/public-key.hpp b/include/ndn-cpp/security/certificate/public-key.hpp
similarity index 100%
rename from ndn-cpp/security/certificate/public-key.hpp
rename to include/ndn-cpp/security/certificate/public-key.hpp
diff --git a/ndn-cpp/security/encryption/encryption-manager.hpp b/include/ndn-cpp/security/encryption/encryption-manager.hpp
similarity index 100%
rename from ndn-cpp/security/encryption/encryption-manager.hpp
rename to include/ndn-cpp/security/encryption/encryption-manager.hpp
diff --git a/ndn-cpp/security/identity/basic-identity-storage.hpp b/include/ndn-cpp/security/identity/basic-identity-storage.hpp
similarity index 100%
rename from ndn-cpp/security/identity/basic-identity-storage.hpp
rename to include/ndn-cpp/security/identity/basic-identity-storage.hpp
diff --git a/ndn-cpp/security/identity/identity-manager.hpp b/include/ndn-cpp/security/identity/identity-manager.hpp
similarity index 98%
rename from ndn-cpp/security/identity/identity-manager.hpp
rename to include/ndn-cpp/security/identity/identity-manager.hpp
index c53607f..08f0434 100644
--- a/ndn-cpp/security/identity/identity-manager.hpp
+++ b/include/ndn-cpp/security/identity/identity-manager.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Yingdi Yu <yingdi@cs.ucla.edu>
diff --git a/ndn-cpp/security/identity/identity-storage.hpp b/include/ndn-cpp/security/identity/identity-storage.hpp
similarity index 100%
rename from ndn-cpp/security/identity/identity-storage.hpp
rename to include/ndn-cpp/security/identity/identity-storage.hpp
diff --git a/ndn-cpp/security/identity/memory-identity-storage.hpp b/include/ndn-cpp/security/identity/memory-identity-storage.hpp
similarity index 100%
rename from ndn-cpp/security/identity/memory-identity-storage.hpp
rename to include/ndn-cpp/security/identity/memory-identity-storage.hpp
diff --git a/ndn-cpp/security/identity/memory-private-key-storage.hpp b/include/ndn-cpp/security/identity/memory-private-key-storage.hpp
similarity index 100%
rename from ndn-cpp/security/identity/memory-private-key-storage.hpp
rename to include/ndn-cpp/security/identity/memory-private-key-storage.hpp
diff --git a/ndn-cpp/security/identity/osx-private-key-storage.hpp b/include/ndn-cpp/security/identity/osx-private-key-storage.hpp
similarity index 100%
rename from ndn-cpp/security/identity/osx-private-key-storage.hpp
rename to include/ndn-cpp/security/identity/osx-private-key-storage.hpp
diff --git a/ndn-cpp/security/identity/private-key-storage.hpp b/include/ndn-cpp/security/identity/private-key-storage.hpp
similarity index 97%
rename from ndn-cpp/security/identity/private-key-storage.hpp
rename to include/ndn-cpp/security/identity/private-key-storage.hpp
index 0ff0077..8917c92 100644
--- a/ndn-cpp/security/identity/private-key-storage.hpp
+++ b/include/ndn-cpp/security/identity/private-key-storage.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Yingdi Yu <yingdi@cs.ucla.edu>
diff --git a/ndn-cpp/security/key-chain.hpp b/include/ndn-cpp/security/key-chain.hpp
similarity index 99%
rename from ndn-cpp/security/key-chain.hpp
rename to include/ndn-cpp/security/key-chain.hpp
index 7114e4e..97db9d8 100644
--- a/ndn-cpp/security/key-chain.hpp
+++ b/include/ndn-cpp/security/key-chain.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/security/policy/no-verify-policy-manager.hpp b/include/ndn-cpp/security/policy/no-verify-policy-manager.hpp
similarity index 100%
rename from ndn-cpp/security/policy/no-verify-policy-manager.hpp
rename to include/ndn-cpp/security/policy/no-verify-policy-manager.hpp
diff --git a/ndn-cpp/security/policy/policy-manager.hpp b/include/ndn-cpp/security/policy/policy-manager.hpp
similarity index 100%
rename from ndn-cpp/security/policy/policy-manager.hpp
rename to include/ndn-cpp/security/policy/policy-manager.hpp
diff --git a/ndn-cpp/security/security-common.hpp b/include/ndn-cpp/security/security-common.hpp
similarity index 100%
rename from ndn-cpp/security/security-common.hpp
rename to include/ndn-cpp/security/security-common.hpp
diff --git a/ndn-cpp/security/security-exception.hpp b/include/ndn-cpp/security/security-exception.hpp
similarity index 100%
rename from ndn-cpp/security/security-exception.hpp
rename to include/ndn-cpp/security/security-exception.hpp
diff --git a/ndn-cpp/sha256-with-rsa-signature.hpp b/include/ndn-cpp/sha256-with-rsa-signature.hpp
similarity index 97%
rename from ndn-cpp/sha256-with-rsa-signature.hpp
rename to include/ndn-cpp/sha256-with-rsa-signature.hpp
index 2d5c4ce..25eb6ae 100644
--- a/ndn-cpp/sha256-with-rsa-signature.hpp
+++ b/include/ndn-cpp/sha256-with-rsa-signature.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/transport/tcp-transport.hpp b/include/ndn-cpp/transport/tcp-transport.hpp
similarity index 88%
rename from ndn-cpp/transport/tcp-transport.hpp
rename to include/ndn-cpp/transport/tcp-transport.hpp
index e6c2a73..ce7e697 100644
--- a/ndn-cpp/transport/tcp-transport.hpp
+++ b/include/ndn-cpp/transport/tcp-transport.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,10 +9,12 @@
 #define NDN_TCPTRANSPORT_HPP
 
 #include <string>
-#include "../c/transport/tcp-transport.h"
-#include "../c/encoding/binary-xml-element-reader.h"
+#include "../common.hpp"
 #include "transport.hpp"
 
+struct ndn_TcpTransport;
+struct ndn_BinaryXmlElementReader;
+
 namespace ndn {
   
 class TcpTransport : public Transport {
@@ -53,12 +56,7 @@
     unsigned short port_;
   };
 
-  TcpTransport() 
-  : elementListener_(0), isConnected_(false)
-  {
-    ndn_TcpTransport_initialize(&transport_);
-    elementReader_.partialData.array = 0;
-  }
+  TcpTransport();
   
   /**
    * Connect according to the info in ConnectionInfo, and processEvents() will use elementListener.
@@ -93,11 +91,11 @@
   ~TcpTransport();
   
 private:
-  struct ndn_TcpTransport transport_;
+  ptr_lib::shared_ptr<struct ndn_TcpTransport> transport_;
   bool isConnected_;
   ElementListener *elementListener_;
   // TODO: This belongs in the socket listener.
-  ndn_BinaryXmlElementReader elementReader_;
+  ptr_lib::shared_ptr<struct ndn_BinaryXmlElementReader> elementReader_;
 };
 
 }
diff --git a/ndn-cpp/transport/transport.hpp b/include/ndn-cpp/transport/transport.hpp
similarity index 96%
rename from ndn-cpp/transport/transport.hpp
rename to include/ndn-cpp/transport/transport.hpp
index 512a003..3be3dd3 100644
--- a/ndn-cpp/transport/transport.hpp
+++ b/include/ndn-cpp/transport/transport.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/transport/udp-transport.hpp b/include/ndn-cpp/transport/udp-transport.hpp
similarity index 88%
rename from ndn-cpp/transport/udp-transport.hpp
rename to include/ndn-cpp/transport/udp-transport.hpp
index a7a40b1..6d83345 100644
--- a/ndn-cpp/transport/udp-transport.hpp
+++ b/include/ndn-cpp/transport/udp-transport.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,10 +9,12 @@
 #define NDN_UDPTRANSPORT_HPP
 
 #include <string>
-#include "../c/transport/udp-transport.h"
-#include "../c/encoding/binary-xml-element-reader.h"
+#include "../common.hpp"
 #include "transport.hpp"
 
+struct ndn_UdpTransport;
+struct ndn_BinaryXmlElementReader;
+
 namespace ndn {
   
 class UdpTransport : public Transport {
@@ -53,12 +56,7 @@
     unsigned short port_;
   };
 
-  UdpTransport() 
-  : elementListener_(0), isConnected_(false)
-  {
-    ndn_UdpTransport_initialize(&transport_);
-    elementReader_.partialData.array = 0;
-  }
+  UdpTransport();
   
   /**
    * Connect according to the info in ConnectionInfo, and processEvents() will use elementListener.
@@ -98,11 +96,11 @@
   ~UdpTransport();
   
 private:
-  struct ndn_UdpTransport transport_;
+  ptr_lib::shared_ptr<struct ndn_UdpTransport> transport_;
   bool isConnected_;
   ElementListener *elementListener_;
   // TODO: This belongs in the socket listener.
-  ndn_BinaryXmlElementReader elementReader_;
+  ptr_lib::shared_ptr<struct ndn_BinaryXmlElementReader> elementReader_;
 };
 
 }
diff --git a/ndn-cpp/util/blob.hpp b/include/ndn-cpp/util/blob.hpp
similarity index 89%
rename from ndn-cpp/util/blob.hpp
rename to include/ndn-cpp/util/blob.hpp
index 2c238a6..af9432d 100644
--- a/ndn-cpp/util/blob.hpp
+++ b/include/ndn-cpp/util/blob.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,7 +9,8 @@
 #define	NDN_BLOB_HPP
 
 #include "../common.hpp"
-#include "../c/util/blob.h"
+
+struct ndn_Blob;
 
 namespace ndn {
 
@@ -56,10 +58,7 @@
    * Create a new Blob with an immutable copy of the array in the given Blob struct.
    * @param blobStruct The C ndn_Blob struct to receive the pointer.
    */
-  Blob(const struct ndn_Blob& blobStruct)
-  : ptr_lib::shared_ptr<const std::vector<uint8_t> >(new std::vector<uint8_t>(blobStruct.value, blobStruct.value + blobStruct.length))
-  {
-  }
+  Blob(const struct ndn_Blob& blobStruct);
   
   /**
    * Create a new Blob to point to an existing byte array.  IMPORTANT: After calling this constructor,
@@ -105,14 +104,7 @@
    * @param blobStruct The C ndn_Blob struct to receive the pointer.
    */
   void 
-  get(struct ndn_Blob& blobStruct) const 
-  {
-    blobStruct.length = size(); 
-    if (size() > 0)
-      blobStruct.value = (uint8_t*)buf();
-    else
-      blobStruct.value = 0;
-  }
+  get(struct ndn_Blob& blobStruct) const;
 };
 
 }
diff --git a/ndn-cpp/util/signed-blob.hpp b/include/ndn-cpp/util/signed-blob.hpp
similarity index 98%
rename from ndn-cpp/util/signed-blob.hpp
rename to include/ndn-cpp/util/signed-blob.hpp
index dd94ae0..7d9c4e1 100644
--- a/ndn-cpp/util/signed-blob.hpp
+++ b/include/ndn-cpp/util/signed-blob.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Zhenkai Zhu <zhenkai@cs.ucla.edu>
diff --git a/ndn-cpp/c/data.h b/ndn-cpp/c/data.h
index e085f79..8d14e05 100644
--- a/ndn-cpp/c/data.h
+++ b/ndn-cpp/c/data.h
@@ -7,6 +7,7 @@
 #ifndef NDN_DATA_H
 #define NDN_DATA_H
 
+#include <ndn-cpp/c/data-types.h>
 #include "name.h"
 #include "publisher-public-key-digest.h"
 #include "key.h"
@@ -41,15 +42,6 @@
   ndn_KeyLocator_initialize(&self->keyLocator, keyNameComponents, maxKeyNameComponents);
 }
 
-typedef enum {
-  ndn_ContentType_DATA = 0,
-  ndn_ContentType_ENCR = 1,
-  ndn_ContentType_GONE = 2,
-  ndn_ContentType_KEY =  3,
-  ndn_ContentType_LINK = 4,
-  ndn_ContentType_NACK = 5
-} ndn_ContentType;
-
 /**
  * An ndn_MetaInfo struct holds the meta info which is signed inside the data packet.
  */
diff --git a/ndn-cpp/c/encoding/binary-xml-decoder.h b/ndn-cpp/c/encoding/binary-xml-decoder.h
index 3e16497..38fd450 100644
--- a/ndn-cpp/c/encoding/binary-xml-decoder.h
+++ b/ndn-cpp/c/encoding/binary-xml-decoder.h
@@ -7,7 +7,7 @@
 #ifndef NDN_BINARYXMLDECODER_H
 #define NDN_BINARYXMLDECODER_H
 
-#include "../common.h"
+#include <ndn-cpp/c/common.h>
 #include "../errors.h"
 #include "../util/blob.h"
 
diff --git a/ndn-cpp/c/encoding/binary-xml-element-reader.h b/ndn-cpp/c/encoding/binary-xml-element-reader.h
index c2b3777..89f8c8d 100644
--- a/ndn-cpp/c/encoding/binary-xml-element-reader.h
+++ b/ndn-cpp/c/encoding/binary-xml-element-reader.h
@@ -4,9 +4,10 @@
  * See COPYING for copyright and distribution information.
  */
 
-#ifndef NDN_BINARYXMLELEMENTREADER_H
-#define NDN_BINARYXMLELEMENTREADER_H
+#ifndef NDN_BINARY_XML_ELEMENT_READER_H
+#define NDN_BINARY_XML_ELEMENT_READER_H
 
+#include <ndn-cpp/c/encoding/element-listener.h>
 #include "../errors.h"
 #include "binary-xml-structure-decoder.h"
 #include "../util/dynamic-uint8-array.h"
@@ -14,25 +15,6 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
-/** An ndn_ElementListener struct holds a function pointer onReceivedElement.  You can extend this struct with data that
- * will be passed to onReceivedElement.
- */
-struct ndn_ElementListener {
-  void (*onReceivedElement)(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength); /**< see ndn_ElementListener_initialize */
-};
-
-/**
- * Initialize an ndn_ElementListener struct to use the onReceivedElement function pointer.
- * @param self pointer to the ndn_ElementListener struct
- * @param onReceivedElement pointer to a function which is called when an entire binary XML element is received.
- * self is the pointer to this ndn_ElementListener struct.  See ndn_BinaryXmlElementReader_onReceivedData.
- */
-static inline void ndn_ElementListener_initialize
-  (struct ndn_ElementListener *self, void (*onReceivedElement)(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength))
-{
-  self->onReceivedElement = onReceivedElement;
-}
   
 /**
  * A BinaryXmlElementReader lets you call ndn_BinaryXmlElementReader_onReceivedData multiple times which uses an
diff --git a/ndn-cpp/c/encoding/binary-xml-key.h b/ndn-cpp/c/encoding/binary-xml-key.h
index 6aecd20..391fa72 100644
--- a/ndn-cpp/c/encoding/binary-xml-key.h
+++ b/ndn-cpp/c/encoding/binary-xml-key.h
@@ -7,8 +7,8 @@
 #ifndef NDN_BINARYXMLKEY_H
 #define NDN_BINARYXMLKEY_H
 
-#include "../errors.h"
 #include "../key.h"
+#include "../errors.h"
 #include "binary-xml-encoder.h"
 #include "binary-xml-decoder.h"
 
diff --git a/ndn-cpp/c/encoding/binary-xml-structure-decoder.h b/ndn-cpp/c/encoding/binary-xml-structure-decoder.h
index 63420d2..54a92d5 100644
--- a/ndn-cpp/c/encoding/binary-xml-structure-decoder.h
+++ b/ndn-cpp/c/encoding/binary-xml-structure-decoder.h
@@ -7,7 +7,7 @@
 #ifndef NDN_BINARYXMLSTRUCTUREDECODER_H
 #define NDN_BINARYXMLSTRUCTUREDECODER_H
 
-#include "../common.h"
+#include <ndn-cpp/c/common.h>
 #include "../errors.h"
 
 #ifdef __cplusplus
diff --git a/ndn-cpp/c/forwarding-entry.h b/ndn-cpp/c/forwarding-entry.h
index 001fabc..48bbf5e 100644
--- a/ndn-cpp/c/forwarding-entry.h
+++ b/ndn-cpp/c/forwarding-entry.h
@@ -7,10 +7,10 @@
 #ifndef NDN_FORWARDING_ENTRY_H
 #define NDN_FORWARDING_ENTRY_H
 
-#include "common.h"
+#include <ndn-cpp/c/common.h>
+#include <ndn-cpp/c/forwarding-flags.h>
 #include "name.h"
 #include "publisher-public-key-digest.h"
-#include "forwarding-flags.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/ndn-cpp/c/forwarding-flags.c b/ndn-cpp/c/forwarding-flags.c
index e7477ed..4a7510d 100644
--- a/ndn-cpp/c/forwarding-flags.c
+++ b/ndn-cpp/c/forwarding-flags.c
@@ -5,7 +5,6 @@
  */
 
 #include "forwarding-entry.h"
-#include "forwarding-flags.h"
 
 void ndn_ForwardingFlags_initialize(struct ndn_ForwardingFlags *self)
 {
diff --git a/ndn-cpp/c/interest.h b/ndn-cpp/c/interest.h
index 69428ac..12ca38e 100644
--- a/ndn-cpp/c/interest.h
+++ b/ndn-cpp/c/interest.h
@@ -7,6 +7,7 @@
 #ifndef NDN_INTEREST_H
 #define NDN_INTEREST_H
 
+#include <ndn-cpp/c/interest-types.h>
 #include "name.h"
 #include "publisher-public-key-digest.h"
 
@@ -14,11 +15,6 @@
 extern "C" {
 #endif
 
-typedef enum {
-  ndn_Exclude_COMPONENT = 0,
-  ndn_Exclude_ANY = 1  
-} ndn_ExcludeType;
-
 /**
  * An ndn_ExcludeEntry holds an ndn_ExcludeType, and if it is a COMPONENT, it holds a pointer to the component value.
  */
diff --git a/ndn-cpp/c/key.h b/ndn-cpp/c/key.h
index a933489..b7f8751 100644
--- a/ndn-cpp/c/key.h
+++ b/ndn-cpp/c/key.h
@@ -7,25 +7,13 @@
 #ifndef NDN_KEY_H
 #define NDN_KEY_H
 
+#include <ndn-cpp/c/key-types.h>
 #include "name.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-typedef enum {
-  ndn_KeyLocatorType_KEY = 1,
-  ndn_KeyLocatorType_CERTIFICATE = 2,
-  ndn_KeyLocatorType_KEYNAME = 3
-} ndn_KeyLocatorType;
-
-typedef enum {
-  ndn_KeyNameType_PUBLISHER_PUBLIC_KEY_DIGEST = 1,
-  ndn_KeyNameType_PUBLISHER_CERTIFICATE_DIGEST = 2,
-  ndn_KeyNameType_PUBLISHER_ISSUER_KEY_DIGEST = 3,
-  ndn_KeyNameType_PUBLISHER_ISSUER_CERTIFICATE_DIGEST = 4
-} ndn_KeyNameType;
-
 /**
  * An ndn_KeyLocator holds the type of key locator and related data.
  */
diff --git a/ndn-cpp/c/name.h b/ndn-cpp/c/name.h
index d6badc1..78fcc9c 100644
--- a/ndn-cpp/c/name.h
+++ b/ndn-cpp/c/name.h
@@ -7,6 +7,7 @@
 #ifndef NDN_NAME_H
 #define NDN_NAME_H
 
+#include <ndn-cpp/c/common.h>
 #include "errors.h"
 #include "util/blob.h"
 
diff --git a/ndn-cpp/c/publisher-public-key-digest.h b/ndn-cpp/c/publisher-public-key-digest.h
index 85891bf..95faf1d 100644
--- a/ndn-cpp/c/publisher-public-key-digest.h
+++ b/ndn-cpp/c/publisher-public-key-digest.h
@@ -7,7 +7,7 @@
 #ifndef NDN_PUBLISHERPUBLICKEYDIGEST_H
 #define NDN_PUBLISHERPUBLICKEYDIGEST_H
 
-#include "common.h"
+#include <ndn-cpp/c/common.h>
 #include "util/blob.h"
 
 #ifdef __cplusplus
diff --git a/ndn-cpp/c/transport/socket-transport.h b/ndn-cpp/c/transport/socket-transport.h
index b0a0979..85e297e 100644
--- a/ndn-cpp/c/transport/socket-transport.h
+++ b/ndn-cpp/c/transport/socket-transport.h
@@ -8,7 +8,7 @@
 #define NDN_SOCKETTRANSPORT_H
 
 #include <sys/socket.h>
-#include "../common.h"
+#include <ndn-cpp/c/common.h>
 #include "../errors.h"
 
 #ifdef __cplusplus
diff --git a/ndn-cpp/c/util/blob.h b/ndn-cpp/c/util/blob.h
index 06dbce1..18bcd03 100644
--- a/ndn-cpp/c/util/blob.h
+++ b/ndn-cpp/c/util/blob.h
@@ -7,6 +7,8 @@
 #ifndef NDN_BLOB_H
 #define	NDN_BLOB_H
 
+#include <ndn-cpp/c/common.h>
+
 #ifdef	__cplusplus
 extern "C" {
 #endif
diff --git a/ndn-cpp/c/util/crypto.h b/ndn-cpp/c/util/crypto.h
index 5bec549..586108b 100644
--- a/ndn-cpp/c/util/crypto.h
+++ b/ndn-cpp/c/util/crypto.h
@@ -9,7 +9,7 @@
 
 #include <openssl/ssl.h>
 #include <openssl/rsa.h>
-#include "../common.h"
+#include <ndn-cpp/c/common.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/ndn-cpp/c/util/ndn_memory.h b/ndn-cpp/c/util/ndn_memory.h
index 9d23e2d..bdf6341 100644
--- a/ndn-cpp/c/util/ndn_memory.h
+++ b/ndn-cpp/c/util/ndn_memory.h
@@ -11,7 +11,7 @@
 #ifndef NDN_MEMORY_H
 #define NDN_MEMORY_H
 
-#include "../common.h"
+#include <ndn-cpp/c/common.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/ndn-cpp/common.cpp b/ndn-cpp/common.cpp
index fcebfba..ff420f9 100644
--- a/ndn-cpp/common.cpp
+++ b/ndn-cpp/common.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,7 +6,7 @@
  */
 
 #include <sstream>
-#include "common.hpp"
+#include <ndn-cpp/common.hpp>
 
 using namespace std;
 
diff --git a/ndn-cpp/data.cpp b/ndn-cpp/data.cpp
index 98ffde0..6b2f570 100644
--- a/ndn-cpp/data.cpp
+++ b/ndn-cpp/data.cpp
@@ -1,12 +1,14 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
  */
 
-#include "common.hpp"
-#include "data.hpp"
-#include "sha256-with-rsa-signature.hpp"
+#include <ndn-cpp/common.hpp>
+#include <ndn-cpp/data.hpp>
+#include <ndn-cpp/sha256-with-rsa-signature.hpp>
+#include "c/data.h"
 
 using namespace std;
 
diff --git a/ndn-cpp/encoding/binary-xml-decoder.hpp b/ndn-cpp/encoding/binary-xml-decoder.hpp
index f75d4f0..3e371c3 100644
--- a/ndn-cpp/encoding/binary-xml-decoder.hpp
+++ b/ndn-cpp/encoding/binary-xml-decoder.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/encoding/binary-xml-encoder.hpp b/ndn-cpp/encoding/binary-xml-encoder.hpp
index af495ca..33afb09 100644
--- a/ndn-cpp/encoding/binary-xml-encoder.hpp
+++ b/ndn-cpp/encoding/binary-xml-encoder.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,7 +9,7 @@
 #define NDN_BINARYXMLENCODER_HPP
 
 #include <vector>
-#include "../common.hpp"
+#include <ndn-cpp/common.hpp>
 #include "../util/dynamic-uint8-vector.hpp"
 #include "../c/encoding/binary-xml-encoder.h"
 
diff --git a/ndn-cpp/encoding/binary-xml-structure-decoder.hpp b/ndn-cpp/encoding/binary-xml-structure-decoder.hpp
index e953a1b..9ffd72b 100644
--- a/ndn-cpp/encoding/binary-xml-structure-decoder.hpp
+++ b/ndn-cpp/encoding/binary-xml-structure-decoder.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/encoding/binary-xml-wire-format.cpp b/ndn-cpp/encoding/binary-xml-wire-format.cpp
index adb756a..9bd6759 100644
--- a/ndn-cpp/encoding/binary-xml-wire-format.cpp
+++ b/ndn-cpp/encoding/binary-xml-wire-format.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,15 +6,15 @@
  */
 
 #include <stdexcept>
+#include <ndn-cpp/interest.hpp>
+#include <ndn-cpp/data.hpp>
+#include <ndn-cpp/forwarding-entry.hpp>
+#include <ndn-cpp/encoding/binary-xml-wire-format.hpp>
 #include "../c/encoding/binary-xml-interest.h"
 #include "../c/encoding/binary-xml-data.h"
 #include "../c/encoding/binary-xml-forwarding-entry.h"
-#include "../interest.hpp"
-#include "../data.hpp"
-#include "../forwarding-entry.hpp"
 #include "binary-xml-encoder.hpp"
 #include "binary-xml-decoder.hpp"
-#include "binary-xml-wire-format.hpp"
 
 using namespace std;
 
diff --git a/ndn-cpp/encoding/binary-xml-element-reader.cpp b/ndn-cpp/encoding/element-listener.cpp
similarity index 77%
rename from ndn-cpp/encoding/binary-xml-element-reader.cpp
rename to ndn-cpp/encoding/element-listener.cpp
index 559af7f..58bb875 100644
--- a/ndn-cpp/encoding/binary-xml-element-reader.cpp
+++ b/ndn-cpp/encoding/element-listener.cpp
@@ -1,10 +1,11 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
  */
 
-#include "binary-xml-element-reader.hpp"
+#include <ndn-cpp/encoding/element-listener.hpp>
 
 namespace ndn {
 
diff --git a/ndn-cpp/encoding/wire-format.cpp b/ndn-cpp/encoding/wire-format.cpp
index cf7890e..8751d16 100644
--- a/ndn-cpp/encoding/wire-format.cpp
+++ b/ndn-cpp/encoding/wire-format.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,7 +6,7 @@
  */
 
 #include <stdexcept>
-#include "wire-format.hpp"
+#include <ndn-cpp/encoding/wire-format.hpp>
 
 using namespace std;
 
diff --git a/ndn-cpp/face.cpp b/ndn-cpp/face.cpp
index d70023b..b137765 100644
--- a/ndn-cpp/face.cpp
+++ b/ndn-cpp/face.cpp
@@ -1,10 +1,11 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
  */
 
-#include "face.hpp"
+#include <ndn-cpp/face.hpp>
 
 using namespace std;
 
diff --git a/ndn-cpp/forwarding-entry.cpp b/ndn-cpp/forwarding-entry.cpp
index 93c4d26..452d39b 100644
--- a/ndn-cpp/forwarding-entry.cpp
+++ b/ndn-cpp/forwarding-entry.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,8 +6,9 @@
  */
 
 #include <stdexcept>
-#include "common.hpp"
-#include "forwarding-entry.hpp"
+#include <ndn-cpp/common.hpp>
+#include <ndn-cpp/forwarding-entry.hpp>
+#include "c/forwarding-entry.h"
 
 using namespace std;
 
diff --git a/ndn-cpp/interest.cpp b/ndn-cpp/interest.cpp
index e1a6af7..ceeffcd 100644
--- a/ndn-cpp/interest.cpp
+++ b/ndn-cpp/interest.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,14 +6,23 @@
  */
 
 #include <stdexcept>
-#include "common.hpp"
-#include "interest.hpp"
+#include <ndn-cpp/common.hpp>
+#include <ndn-cpp/interest.hpp>
+#include "c/interest.h"
 
 using namespace std;
 
 namespace ndn {
   
 void 
+ExcludeEntry::get(struct ndn_ExcludeEntry& excludeEntryStruct) const 
+{
+  excludeEntryStruct.type = type_;
+  if (type_ == ndn_Exclude_COMPONENT)
+    component_.get(excludeEntryStruct.component);
+}
+
+void 
 Exclude::get(struct ndn_Exclude& excludeStruct) const
 {
   if (excludeStruct.maxEntries < entries_.size())
diff --git a/ndn-cpp/key.cpp b/ndn-cpp/key.cpp
index db3ea58..0cf59ed 100644
--- a/ndn-cpp/key.cpp
+++ b/ndn-cpp/key.cpp
@@ -1,16 +1,18 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
  */
 
-#include "common.hpp"
-#include "key.hpp"
+#include <ndn-cpp/common.hpp>
+#include <ndn-cpp/key.hpp>
+#include "c/key.h"
 
 using namespace std;
 
 namespace ndn {
-
+  
 void 
 KeyLocator::get(struct ndn_KeyLocator& keyLocatorStruct) const 
 {
diff --git a/ndn-cpp/name.cpp b/ndn-cpp/name.cpp
index d74142e..4e619cc 100644
--- a/ndn-cpp/name.cpp
+++ b/ndn-cpp/name.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -6,7 +7,8 @@
 
 #include <stdexcept>
 #include <algorithm>
-#include "name.hpp"
+#include <ndn-cpp/name.hpp>
+#include "c/name.h"
 
 using namespace std;
 using namespace ndn::ptr_lib;
@@ -162,6 +164,20 @@
 }
 
 void 
+Name::Component::get(struct ndn_NameComponent& componentStruct) const 
+{
+  value_.get(componentStruct.value);
+}
+
+uint64_t
+Name::Component::toNumber() const
+{
+  struct ndn_NameComponent componentStruct;
+  get(componentStruct);
+  return ndn_NameComponent_toNumber(&componentStruct);
+}
+
+void 
 Name::set(const char *uri_cstr) 
 {
   components_.clear();
diff --git a/ndn-cpp/node.cpp b/ndn-cpp/node.cpp
index 30c0573..c145d50 100644
--- a/ndn-cpp/node.cpp
+++ b/ndn-cpp/node.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -6,13 +7,15 @@
 
 #include <sys/time.h>
 #include <stdexcept>
+#include "c/name.h"
+#include "c/interest.h"
 #include "c/util/crypto.h"
-#include "encoding/binary-xml-decoder.hpp"
 #include "c/encoding/binary-xml.h"
-#include "forwarding-entry.hpp"
-#include "security/key-chain.hpp"
-#include "sha256-with-rsa-signature.hpp"
-#include "node.hpp"
+#include "encoding/binary-xml-decoder.hpp"
+#include <ndn-cpp/forwarding-entry.hpp>
+#include <ndn-cpp/security/key-chain.hpp>
+#include <ndn-cpp/sha256-with-rsa-signature.hpp>
+#include <ndn-cpp/node.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
@@ -338,7 +341,8 @@
 
 Node::PendingInterest::PendingInterest
   (uint64_t pendingInterestId, const shared_ptr<const Interest>& interest, const OnData& onData, const OnTimeout& onTimeout)
-: pendingInterestId_(pendingInterestId), interest_(interest), onData_(onData), onTimeout_(onTimeout)
+: pendingInterestId_(pendingInterestId), interest_(interest), onData_(onData), onTimeout_(onTimeout),
+  interestStruct_(new struct ndn_Interest)
 {
   // Set up timeoutTime_.
   if (interest_->getInterestLifetimeMilliseconds() >= 0.0)
@@ -352,8 +356,8 @@
   nameComponents_.reserve(interest_->getName().getComponentCount());
   excludeEntries_.reserve(interest_->getExclude().getEntryCount());
   ndn_Interest_initialize
-    (&interestStruct_, &nameComponents_[0], nameComponents_.capacity(), &excludeEntries_[0], excludeEntries_.capacity());
-  interest_->get(interestStruct_);  
+    (interestStruct_.get(), &nameComponents_[0], nameComponents_.capacity(), &excludeEntries_[0], excludeEntries_.capacity());
+  interest_->get(*interestStruct_);  
 }
 
 bool 
diff --git a/ndn-cpp/publisher-public-key-digest.cpp b/ndn-cpp/publisher-public-key-digest.cpp
new file mode 100644
index 0000000..a0667fa
--- /dev/null
+++ b/ndn-cpp/publisher-public-key-digest.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "c/publisher-public-key-digest.h"
+#include <ndn-cpp/publisher-public-key-digest.hpp>
+
+using namespace std;
+
+namespace ndn {
+
+void 
+PublisherPublicKeyDigest::get(struct ndn_PublisherPublicKeyDigest& publisherPublicKeyDigestStruct) const 
+{
+  publisherPublicKeyDigest_.get(publisherPublicKeyDigestStruct.publisherPublicKeyDigest);
+}
+
+void 
+PublisherPublicKeyDigest::set(const struct ndn_PublisherPublicKeyDigest& publisherPublicKeyDigestStruct) 
+{
+  publisherPublicKeyDigest_ = Blob(publisherPublicKeyDigestStruct.publisherPublicKeyDigest);
+}
+
+}
diff --git a/ndn-cpp/security/certificate/oid.cpp b/ndn-cpp/security/certificate/oid.cpp
index 6ae1942..b03d93e 100644
--- a/ndn-cpp/security/certificate/oid.cpp
+++ b/ndn-cpp/security/certificate/oid.cpp
@@ -8,7 +8,7 @@
 #include <stdlib.h>
 #include <sstream>
 
-#include "oid.hpp"
+#include <ndn-cpp/security/certificate/oid.hpp>
 
 using namespace std;
 
diff --git a/ndn-cpp/security/certificate/public-key.cpp b/ndn-cpp/security/certificate/public-key.cpp
index 3565ac3..cd88f7e 100644
--- a/ndn-cpp/security/certificate/public-key.cpp
+++ b/ndn-cpp/security/certificate/public-key.cpp
@@ -6,9 +6,9 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "../security-exception.hpp"
+#include <ndn-cpp/security//security-exception.hpp>
 #include "../../c/util/crypto.h"
-#include "public-key.hpp"
+#include <ndn-cpp/security/certificate/public-key.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/identity/basic-identity-storage.cpp b/ndn-cpp/security/identity/basic-identity-storage.cpp
index e383a32..3cad5cc 100644
--- a/ndn-cpp/security/identity/basic-identity-storage.cpp
+++ b/ndn-cpp/security/identity/basic-identity-storage.cpp
@@ -15,9 +15,9 @@
 #include <stdlib.h>
 #include <sstream>
 #include <fstream>
-#include "basic-identity-storage.hpp"
+#include <ndn-cpp/security/identity/basic-identity-storage.hpp>
 #include "../../util/logging.hpp"
-#include "../security-exception.hpp"
+#include <ndn-cpp/security//security-exception.hpp>
 #include "ndn-cpp/data.hpp"
 
 #if 0
diff --git a/ndn-cpp/security/identity/identity-manager.cpp b/ndn-cpp/security/identity/identity-manager.cpp
index e669a20..e07b483 100644
--- a/ndn-cpp/security/identity/identity-manager.cpp
+++ b/ndn-cpp/security/identity/identity-manager.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Yingdi Yu <yingdi@cs.ucla.edu>
@@ -9,9 +10,9 @@
 #include <stdexcept>
 #endif
 #include "../../util/logging.hpp"
-#include "../../sha256-with-rsa-signature.hpp"
-#include "../security-exception.hpp"
-#include "identity-manager.hpp"
+#include <ndn-cpp/sha256-with-rsa-signature.hpp>
+#include <ndn-cpp/security/security-exception.hpp>
+#include <ndn-cpp/security/identity/identity-manager.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/identity/memory-identity-storage.cpp b/ndn-cpp/security/identity/memory-identity-storage.cpp
index bc2bd34..97b18f4 100644
--- a/ndn-cpp/security/identity/memory-identity-storage.cpp
+++ b/ndn-cpp/security/identity/memory-identity-storage.cpp
@@ -9,8 +9,8 @@
 #include <stdexcept>
 #endif
 #include <algorithm>
-#include "../security-exception.hpp"
-#include "memory-identity-storage.hpp"
+#include <ndn-cpp/security/security-exception.hpp>
+#include <ndn-cpp/security/identity/memory-identity-storage.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/identity/memory-private-key-storage.cpp b/ndn-cpp/security/identity/memory-private-key-storage.cpp
index af2ac13..09f1c66 100644
--- a/ndn-cpp/security/identity/memory-private-key-storage.cpp
+++ b/ndn-cpp/security/identity/memory-private-key-storage.cpp
@@ -9,8 +9,8 @@
 #include <stdexcept>
 #endif
 #include "../../c/util/crypto.h"
-#include "../security-exception.hpp"
-#include "memory-private-key-storage.hpp"
+#include <ndn-cpp/security/security-exception.hpp>
+#include <ndn-cpp/security/identity/memory-private-key-storage.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/identity/osx-private-key-storage.cpp b/ndn-cpp/security/identity/osx-private-key-storage.cpp
index 5cca7ca..5728ad7 100644
--- a/ndn-cpp/security/identity/osx-private-key-storage.cpp
+++ b/ndn-cpp/security/identity/osx-private-key-storage.cpp
@@ -14,8 +14,8 @@
 #include <CoreFoundation/CoreFoundation.h>
 
 #include "../../util/logging.hpp"
-#include "osx-private-key-storage.hpp"
-#include "../security-exception.hpp"
+#include <ndn-cpp/security/identity/osx-private-key-storage.hpp>
+#include <ndn-cpp/security/security-exception.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/key-chain.cpp b/ndn-cpp/security/key-chain.cpp
index 5bcc4c1..3f47e3e 100644
--- a/ndn-cpp/security/key-chain.cpp
+++ b/ndn-cpp/security/key-chain.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -7,11 +8,11 @@
 #include "../c/util/crypto.h"
 #include "../c/encoding/binary-xml-data.h"
 #include "../encoding/binary-xml-encoder.hpp"
-#include "../sha256-with-rsa-signature.hpp"
+#include <ndn-cpp/sha256-with-rsa-signature.hpp>
 #include "../util/logging.hpp"
-#include "policy/policy-manager.hpp"
-#include "security-exception.hpp"
-#include "key-chain.hpp"
+#include <ndn-cpp/security/security-exception.hpp>
+#include <ndn-cpp/security/policy/policy-manager.hpp>
+#include <ndn-cpp/security/key-chain.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/policy/no-verify-policy-manager.cpp b/ndn-cpp/security/policy/no-verify-policy-manager.cpp
index 172845e..e49ae75 100644
--- a/ndn-cpp/security/policy/no-verify-policy-manager.cpp
+++ b/ndn-cpp/security/policy/no-verify-policy-manager.cpp
@@ -6,7 +6,7 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "no-verify-policy-manager.hpp"
+#include <ndn-cpp/security/policy/no-verify-policy-manager.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/security/security-exception.cpp b/ndn-cpp/security/security-exception.cpp
index b4bbd22..b4acfad 100644
--- a/ndn-cpp/security/security-exception.cpp
+++ b/ndn-cpp/security/security-exception.cpp
@@ -6,7 +6,7 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "security-exception.hpp"
+#include <ndn-cpp/security/security-exception.hpp>
 using namespace std;
 
 namespace ndn {
diff --git a/ndn-cpp/sha256-with-rsa-signature.cpp b/ndn-cpp/sha256-with-rsa-signature.cpp
index 3153551..bf4dfa6 100644
--- a/ndn-cpp/sha256-with-rsa-signature.cpp
+++ b/ndn-cpp/sha256-with-rsa-signature.cpp
@@ -1,10 +1,12 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
  * See COPYING for copyright and distribution information.
  */
 
-#include "sha256-with-rsa-signature.hpp"
+#include "c/data.h"
+#include <ndn-cpp/sha256-with-rsa-signature.hpp>
 
 using namespace std;
 using namespace ndn::ptr_lib;
diff --git a/ndn-cpp/transport/tcp-transport.cpp b/ndn-cpp/transport/tcp-transport.cpp
index 9a712fb..cb8c1e6 100644
--- a/ndn-cpp/transport/tcp-transport.cpp
+++ b/ndn-cpp/transport/tcp-transport.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,9 +6,11 @@
  */
 
 #include <stdexcept>
-#include "../node.hpp"
+#include <ndn-cpp/node.hpp>
+#include "../c/transport/tcp-transport.h"
+#include "../c/encoding/binary-xml-element-reader.h"
 #include "../c/util/ndn_realloc.h"
-#include "tcp-transport.hpp"
+#include <ndn-cpp/transport/tcp-transport.hpp>
 
 using namespace std;
 
@@ -17,20 +20,27 @@
 {  
 }
 
+TcpTransport::TcpTransport() 
+  : elementListener_(0), isConnected_(false), transport_(new struct ndn_TcpTransport), elementReader_(new struct ndn_BinaryXmlElementReader)
+{
+  ndn_TcpTransport_initialize(transport_.get());
+  elementReader_->partialData.array = 0;
+}
+
 void 
 TcpTransport::connect(const Transport::ConnectionInfo& connectionInfo, ElementListener& elementListener)
 {
   const TcpTransport::ConnectionInfo& tcpConnectionInfo = dynamic_cast<const TcpTransport::ConnectionInfo&>(connectionInfo);
   
   ndn_Error error;
-  if ((error = ndn_TcpTransport_connect(&transport_, (char *)tcpConnectionInfo.getHost().c_str(), tcpConnectionInfo.getPort())))
+  if ((error = ndn_TcpTransport_connect(transport_.get(), (char *)tcpConnectionInfo.getHost().c_str(), tcpConnectionInfo.getPort())))
     throw std::runtime_error(ndn_getErrorString(error)); 
 
   // TODO: This belongs in the socket listener.
   const size_t initialLength = 1000;
   // Automatically cast elementReader_ to (struct ndn_ElementListener *)
   ndn_BinaryXmlElementReader_initialize
-    (&elementReader_, &elementListener, (uint8_t *)malloc(initialLength), initialLength, ndn_realloc);
+    (elementReader_.get(), &elementListener, (uint8_t *)malloc(initialLength), initialLength, ndn_realloc);
   
   isConnected_ = true;
   elementListener_ = &elementListener;
@@ -40,7 +50,7 @@
 TcpTransport::send(const uint8_t *data, size_t dataLength)
 {
   ndn_Error error;
-  if ((error = ndn_TcpTransport_send(&transport_, (uint8_t *)data, dataLength)))
+  if ((error = ndn_TcpTransport_send(transport_.get(), (uint8_t *)data, dataLength)))
     throw std::runtime_error(ndn_getErrorString(error));  
 }
 
@@ -49,17 +59,17 @@
 {
   int receiveIsReady;
   ndn_Error error;
-  if ((error = ndn_TcpTransport_receiveIsReady(&transport_, &receiveIsReady)))
+  if ((error = ndn_TcpTransport_receiveIsReady(transport_.get(), &receiveIsReady)))
     throw std::runtime_error(ndn_getErrorString(error));  
   if (!receiveIsReady)
     return;
 
   uint8_t buffer[8000];
   size_t nBytes;
-  if ((error = ndn_TcpTransport_receive(&transport_, buffer, sizeof(buffer), &nBytes)))
+  if ((error = ndn_TcpTransport_receive(transport_.get(), buffer, sizeof(buffer), &nBytes)))
     throw std::runtime_error(ndn_getErrorString(error));  
 
-  ndn_BinaryXmlElementReader_onReceivedData(&elementReader_, buffer, nBytes);
+  ndn_BinaryXmlElementReader_onReceivedData(elementReader_.get(), buffer, nBytes);
 }
 
 bool 
@@ -72,15 +82,15 @@
 TcpTransport::close()
 {
   ndn_Error error;
-  if ((error = ndn_TcpTransport_close(&transport_)))
+  if ((error = ndn_TcpTransport_close(transport_.get())))
     throw std::runtime_error(ndn_getErrorString(error));  
 }
 
 TcpTransport::~TcpTransport()
 {
-  if (elementReader_.partialData.array)
+  if (elementReader_->partialData.array)
     // Free the memory allocated in connect.
-    free(elementReader_.partialData.array);
+    free(elementReader_->partialData.array);
 }
 
 }
diff --git a/ndn-cpp/transport/transport.cpp b/ndn-cpp/transport/transport.cpp
index b36b119..0dcf518 100644
--- a/ndn-cpp/transport/transport.cpp
+++ b/ndn-cpp/transport/transport.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,7 +6,7 @@
  */
 
 #include <stdexcept>
-#include "transport.hpp"
+#include <ndn-cpp/transport/transport.hpp>
 
 using namespace std;
 
diff --git a/ndn-cpp/transport/udp-transport.cpp b/ndn-cpp/transport/udp-transport.cpp
index 4e65375..17250d4 100644
--- a/ndn-cpp/transport/udp-transport.cpp
+++ b/ndn-cpp/transport/udp-transport.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -5,9 +6,11 @@
  */
 
 #include <stdexcept>
-#include "../face.hpp"
+#include <ndn-cpp/face.hpp>
+#include "../c/transport/udp-transport.h"
+#include "../c/encoding/binary-xml-element-reader.h"
 #include "../c/util/ndn_realloc.h"
-#include "udp-transport.hpp"
+#include <ndn-cpp/transport/udp-transport.hpp>
 
 using namespace std;
 
@@ -17,20 +20,27 @@
 {  
 }
 
+UdpTransport::UdpTransport() 
+  : elementListener_(0), isConnected_(false), transport_(new struct ndn_UdpTransport), elementReader_(new struct ndn_BinaryXmlElementReader)
+{
+  ndn_UdpTransport_initialize(transport_.get());
+  elementReader_->partialData.array = 0;
+}
+
 void 
 UdpTransport::connect(const Transport::ConnectionInfo& connectionInfo, ElementListener& elementListener)
 {
   const UdpTransport::ConnectionInfo& udpConnectionInfo = dynamic_cast<const UdpTransport::ConnectionInfo&>(connectionInfo);
   
   ndn_Error error;
-  if ((error = ndn_UdpTransport_connect(&transport_, (char *)udpConnectionInfo.getHost().c_str(), udpConnectionInfo.getPort())))
+  if ((error = ndn_UdpTransport_connect(transport_.get(), (char *)udpConnectionInfo.getHost().c_str(), udpConnectionInfo.getPort())))
     throw std::runtime_error(ndn_getErrorString(error)); 
 
   // TODO: This belongs in the socket listener.
   const size_t initialLength = 1000;
   // Automatically cast elementReader_ to (struct ndn_ElementListener *)
   ndn_BinaryXmlElementReader_initialize
-    (&elementReader_, &elementListener, (uint8_t *)malloc(initialLength), initialLength, ndn_realloc);
+    (elementReader_.get(), &elementListener, (uint8_t *)malloc(initialLength), initialLength, ndn_realloc);
   
   isConnected_ = true;
   elementListener_ = &elementListener;
@@ -40,7 +50,7 @@
 UdpTransport::send(const uint8_t *data, size_t dataLength)
 {
   ndn_Error error;
-  if ((error = ndn_UdpTransport_send(&transport_, (uint8_t *)data, dataLength)))
+  if ((error = ndn_UdpTransport_send(transport_.get(), (uint8_t *)data, dataLength)))
     throw std::runtime_error(ndn_getErrorString(error));  
 }
 
@@ -49,17 +59,17 @@
 {
   int receiveIsReady;
   ndn_Error error;
-  if ((error = ndn_UdpTransport_receiveIsReady(&transport_, &receiveIsReady)))
+  if ((error = ndn_UdpTransport_receiveIsReady(transport_.get(), &receiveIsReady)))
     throw std::runtime_error(ndn_getErrorString(error));  
   if (!receiveIsReady)
     return;
 
   uint8_t buffer[8000];
   size_t nBytes;
-  if ((error = ndn_UdpTransport_receive(&transport_, buffer, sizeof(buffer), &nBytes)))
+  if ((error = ndn_UdpTransport_receive(transport_.get(), buffer, sizeof(buffer), &nBytes)))
     throw std::runtime_error(ndn_getErrorString(error));  
 
-  ndn_BinaryXmlElementReader_onReceivedData(&elementReader_, buffer, nBytes);
+  ndn_BinaryXmlElementReader_onReceivedData(elementReader_.get(), buffer, nBytes);
 }
 
 bool 
@@ -72,15 +82,15 @@
 UdpTransport::close()
 {
   ndn_Error error;
-  if ((error = ndn_UdpTransport_close(&transport_)))
+  if ((error = ndn_UdpTransport_close(transport_.get())))
     throw std::runtime_error(ndn_getErrorString(error));  
 }
 
 UdpTransport::~UdpTransport()
 {
-  if (elementReader_.partialData.array)
+  if (elementReader_->partialData.array)
     // Free the memory allocated in connect.
-    free(elementReader_.partialData.array);
+    free(elementReader_->partialData.array);
 }
 
 }
diff --git a/ndn-cpp/util/blob.cpp b/ndn-cpp/util/blob.cpp
new file mode 100644
index 0000000..4ce9598
--- /dev/null
+++ b/ndn-cpp/util/blob.cpp
@@ -0,0 +1,30 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "../c/util/blob.h"
+#include <ndn-cpp/util/blob.hpp>
+
+using namespace std;
+
+namespace ndn {
+
+Blob::Blob(const struct ndn_Blob& blobStruct)
+  : ptr_lib::shared_ptr<const std::vector<uint8_t> >(new std::vector<uint8_t>(blobStruct.value, blobStruct.value + blobStruct.length))
+{
+}
+
+void 
+Blob::get(struct ndn_Blob& blobStruct) const 
+{
+  blobStruct.length = size(); 
+  if (size() > 0)
+    blobStruct.value = (uint8_t*)buf();
+  else
+    blobStruct.value = 0;
+}
+
+}
diff --git a/ndn-cpp/util/changed-event.cpp b/ndn-cpp/util/changed-event.cpp
index 63b4569..08dcb98 100644
--- a/ndn-cpp/util/changed-event.cpp
+++ b/ndn-cpp/util/changed-event.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/util/changed-event.hpp b/ndn-cpp/util/changed-event.hpp
index ce4b20f..71be366 100644
--- a/ndn-cpp/util/changed-event.hpp
+++ b/ndn-cpp/util/changed-event.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,7 +9,7 @@
 #define	NDN_CHANGED_EVENT_HPP
 
 #include <vector>
-#include "../common.hpp"
+#include <ndn-cpp/common.hpp>
 
 namespace ndn {
 
diff --git a/ndn-cpp/util/dynamic-uint8-vector.cpp b/ndn-cpp/util/dynamic-uint8-vector.cpp
index ae1b621..197fc0e 100644
--- a/ndn-cpp/util/dynamic-uint8-vector.cpp
+++ b/ndn-cpp/util/dynamic-uint8-vector.cpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
diff --git a/ndn-cpp/util/dynamic-uint8-vector.hpp b/ndn-cpp/util/dynamic-uint8-vector.hpp
index 9550899..b69606d 100644
--- a/ndn-cpp/util/dynamic-uint8-vector.hpp
+++ b/ndn-cpp/util/dynamic-uint8-vector.hpp
@@ -1,3 +1,4 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 /**
  * Copyright (C) 2013 Regents of the University of California.
  * @author: Jeff Thompson <jefft0@remap.ucla.edu>
@@ -8,7 +9,7 @@
 #define NDN_DYNAMIC_UCHAR_VECTOR_HPP
 
 #include <vector>
-#include "../common.hpp"
+#include <ndn-cpp/common.hpp>
 #include "../c/util/dynamic-uint8-array.h"
 
 namespace ndn {
diff --git a/ndn-cpp/util/logging.hpp b/ndn-cpp/util/logging.hpp
index 87d9ad5..f1afe72 100644
--- a/ndn-cpp/util/logging.hpp
+++ b/ndn-cpp/util/logging.hpp
@@ -9,7 +9,7 @@
 #ifndef NDN_LOGGING_HPP
 #define	NDN_LOGGING_HPP
 
-#include "../common.hpp"
+#include <ndn-cpp//common.hpp>
 
 #ifdef NDN_CPP_HAVE_LOG4CXX
 
diff --git a/tests/test-encode-decode-data.cpp b/tests/test-encode-decode-data.cpp
index f5e46f6..078e31c 100644
--- a/tests/test-encode-decode-data.cpp
+++ b/tests/test-encode-decode-data.cpp
@@ -9,12 +9,12 @@
 #include <iostream>
 #include <time.h>
 #include <stdint.h>
-#include "../ndn-cpp/data.hpp"
-#include "../ndn-cpp/security/identity/memory-identity-storage.hpp"
-#include "../ndn-cpp/security/identity/memory-private-key-storage.hpp"
-#include "../ndn-cpp/security/policy/no-verify-policy-manager.hpp"
-#include "../ndn-cpp/security/key-chain.hpp"
-#include "../ndn-cpp/sha256-with-rsa-signature.hpp"
+#include <ndn-cpp/data.hpp>
+#include <ndn-cpp/security/identity/memory-identity-storage.hpp>
+#include <ndn-cpp/security/identity/memory-private-key-storage.hpp>
+#include <ndn-cpp/security/policy/no-verify-policy-manager.hpp>
+#include <ndn-cpp/security/key-chain.hpp>
+#include <ndn-cpp/sha256-with-rsa-signature.hpp>
 
 using namespace std;
 using namespace ndn;
diff --git a/tests/test-encode-decode-forwarding-entry.cpp b/tests/test-encode-decode-forwarding-entry.cpp
index 152b79f..7f998fe 100644
--- a/tests/test-encode-decode-forwarding-entry.cpp
+++ b/tests/test-encode-decode-forwarding-entry.cpp
@@ -7,10 +7,10 @@
 #include <cstdlib>
 #include <sstream>
 #include <iostream>
-#include "../ndn-cpp/interest.hpp"
-#include "../ndn-cpp/data.hpp"
-#include "../ndn-cpp/forwarding-entry.hpp"
-#include "../ndn-cpp/security/key-chain.hpp"
+#include <ndn-cpp/interest.hpp>
+#include <ndn-cpp/data.hpp>
+#include <ndn-cpp/forwarding-entry.hpp>
+#include <ndn-cpp/security/key-chain.hpp>
 
 using namespace std;
 using namespace ndn;
diff --git a/tests/test-encode-decode-interest.cpp b/tests/test-encode-decode-interest.cpp
index 9281569..4065db0 100644
--- a/tests/test-encode-decode-interest.cpp
+++ b/tests/test-encode-decode-interest.cpp
@@ -7,7 +7,7 @@
 #include <cstdlib>
 #include <sstream>
 #include <iostream>
-#include "../ndn-cpp/interest.hpp"
+#include <ndn-cpp/interest.hpp>
 
 using namespace std;
 using namespace ndn;
diff --git a/tests/test-get-async.cpp b/tests/test-get-async.cpp
index 536e164..9cdf28a 100644
--- a/tests/test-get-async.cpp
+++ b/tests/test-get-async.cpp
@@ -7,7 +7,7 @@
 #include <cstdlib>
 #include <sstream>
 #include <iostream>
-#include "../ndn-cpp/face.hpp"
+#include <ndn-cpp/face.hpp>
 
 using namespace std;
 using namespace ndn;
diff --git a/tests/test-publish-async.cpp b/tests/test-publish-async.cpp
index 27797cc..53163b4 100644
--- a/tests/test-publish-async.cpp
+++ b/tests/test-publish-async.cpp
@@ -8,11 +8,11 @@
 #include <sstream>
 #include <iostream>
 #include <time.h>
-#include "../ndn-cpp/face.hpp"
-#include "../ndn-cpp/security/identity/memory-identity-storage.hpp"
-#include "../ndn-cpp/security/identity/memory-private-key-storage.hpp"
-#include "../ndn-cpp/security/policy/no-verify-policy-manager.hpp"
-#include "../ndn-cpp/security/key-chain.hpp"
+#include <ndn-cpp/face.hpp>
+#include <ndn-cpp/security/identity/memory-identity-storage.hpp>
+#include <ndn-cpp/security/identity/memory-private-key-storage.hpp>
+#include <ndn-cpp/security/policy/no-verify-policy-manager.hpp>
+#include <ndn-cpp/security/key-chain.hpp>
 
 using namespace std;
 using namespace ndn;
