diff --git a/ndn-cpp/data.hpp b/ndn-cpp/data.hpp
index d7b9dbe..f368152 100644
--- a/ndn-cpp/data.hpp
+++ b/ndn-cpp/data.hpp
@@ -102,8 +102,8 @@
   
   int getFreshnessSeconds() const { return freshnessSeconds_; }
   
-  const std::vector<unsigned char> getFinalBlockID() const { return finalBlockID_; }
-  std::vector<unsigned char> getFinalBlockID() { return finalBlockID_; }
+  const std::vector<unsigned char> &getFinalBlockID() const { return finalBlockID_; }
+  std::vector<unsigned char> &getFinalBlockID() { return finalBlockID_; }
   
   const KeyLocator &getKeyLocator() const { return keyLocator_; }
   KeyLocator &getKeyLocator() { return keyLocator_; }
@@ -191,7 +191,8 @@
   const SignedInfo &getSignedInfo() const { return signedInfo_; }
   SignedInfo &getSignedInfo() { return signedInfo_; }
   
-  const std::vector<unsigned char> getContent() const { return content_; }
+  const std::vector<unsigned char> &getContent() const { return content_; }
+  std::vector<unsigned char> &getContent() { return content_; }
 
   void setSignature(const Signature &signature) { signature_ = signature; }
   
