diff --git a/include/ccnx-pco.h b/include/ccnx-pco.h
index 4d22765..5b48ccf 100644
--- a/include/ccnx-pco.h
+++ b/include/ccnx-pco.h
@@ -20,10 +20,10 @@
   virtual ~ParsedContentObject();
 
   Bytes
-  content();
+  content() const;
 
   string
-  name();
+  name() const;
 
 protected:
   ccn_parsed_ContentObject m_pco;
diff --git a/include/ccnx-wrapper.h b/include/ccnx-wrapper.h
index c5f8b8d..b4a8536 100644
--- a/include/ccnx-wrapper.h
+++ b/include/ccnx-wrapper.h
@@ -32,14 +32,14 @@
 
 class CcnxWrapper {
 public:
-  typedef boost::function<void (string, Bytes)> DataCallback;
-  typedef boost::function<void (string)> InterestCallback;
+  typedef boost::function<void (const string &, const Bytes &)> DataCallback;
+  typedef boost::function<void (const string &)> InterestCallback;
   typedef enum
   {
     RESULT_OK,
     RESULT_REEXPRESS
   } TimeoutCallbackReturnValue;
-  typedef boost::function<TimeoutCallbackReturnValue (string)> TimeoutCallback;
+  typedef boost::function<TimeoutCallbackReturnValue (const string &)> TimeoutCallback;
 
 public:
 
@@ -65,14 +65,14 @@
   getLocalPrefix ();
 
   static string
-  extractName(const unsigned char *data, ccn_indexbuf *comps);
+  extractName(const unsigned char *data, const ccn_indexbuf *comps);
 
 protected:
   Bytes
   createContentObject(const string &name, const char *buf, size_t len, int freshness);
 
   int 
-  putToCcnd (Bytes &contentObject);
+  putToCcnd (const Bytes &contentObject);
   
 protected:
   void
@@ -123,8 +123,8 @@
   int getRetry() {return m_retry;}
   void decRetry() { m_retry--;}
   virtual ~ClosurePass();
-  virtual void runDataCallback(string name, const Bytes &content);
-  virtual CcnxWrapper::TimeoutCallbackReturnValue runTimeoutCallback(string interest);
+  virtual void runDataCallback(const string &name, const Bytes &content);
+  virtual CcnxWrapper::TimeoutCallbackReturnValue runTimeoutCallback(const string &interest);
 
 protected:
   int m_retry;
