diff --git a/ndn-cpp/Interest.cpp b/ndn-cpp/Interest.cpp
new file mode 100644
index 0000000..ceba502
--- /dev/null
+++ b/ndn-cpp/Interest.cpp
@@ -0,0 +1,35 @@
+/* 
+ * Author: Jeff Thompson
+ *
+ * BSD license, See the LICENSE file for more information.
+ */
+
+#include "Interest.hpp"
+
+using namespace std;
+
+namespace ndn {
+  
+void Interest::set(struct ndn_Interest &interestStruct) 
+{
+  name_.set(interestStruct.name);
+	maxSuffixComponents_ = interestStruct.maxSuffixComponents;
+	minSuffixComponents_ = interestStruct.minSuffixComponents;
+	
+	publisherPublicKeyDigest_.clear();
+  if (interestStruct.publisherPublicKeyDigest)
+    publisherPublicKeyDigest_.insert
+      (publisherPublicKeyDigest_.begin(), interestStruct.publisherPublicKeyDigest, interestStruct.publisherPublicKeyDigest + interestStruct.publisherPublicKeyDigestLength);
+	// TODO: implement exclude
+	childSelector_ = interestStruct.childSelector;
+	answerOriginKind_ = interestStruct.answerOriginKind;
+	scope_ = interestStruct.scope;
+	interestLifetime_ = interestStruct.interestLifetime;
+	nonce_.clear();
+  if (interestStruct.nonce)
+    nonce_.insert
+      (nonce_.begin(), interestStruct.nonce, interestStruct.nonce + interestStruct.nonceLength);
+}
+  
+}
+
