In encode methods, return a ptr_lib::shared_ptr<vector<unsigned char> >
diff --git a/ndn-cpp/encoding/WireFormat.hpp b/ndn-cpp/encoding/WireFormat.hpp
index df532e9..1afe25f 100644
--- a/ndn-cpp/encoding/WireFormat.hpp
+++ b/ndn-cpp/encoding/WireFormat.hpp
@@ -6,6 +6,7 @@
 #ifndef NDN_WIREFORMAT_HPP
 #define	NDN_WIREFORMAT_HPP
 
+#include "../common.hpp"
 #include <vector>
 
 namespace ndn {
@@ -15,10 +16,10 @@
   
 class WireFormat {
 public:
-  virtual void encodeInterest(const Interest &interest, std::vector<unsigned char> &output);
+  virtual ptr_lib::shared_ptr<std::vector<unsigned char> > encodeInterest(const Interest &interest);
   virtual void decodeInterest(Interest &interest, const unsigned char *input, unsigned int inputLength);
 
-  virtual void encodeContentObject(const ContentObject &contentObject, std::vector<unsigned char> &output);
+  virtual ptr_lib::shared_ptr<std::vector<unsigned char> > encodeContentObject(const ContentObject &contentObject);
   virtual void decodeContentObject(ContentObject &contentObject, const unsigned char *input, unsigned int inputLength);
 };