documentation
diff --git a/model/ccnx-interest-header.h b/model/ccnx-interest-header.h
index 979dfdd..dcfd983 100644
--- a/model/ccnx-interest-header.h
+++ b/model/ccnx-interest-header.h
@@ -114,7 +114,7 @@
  **/
 
 /**
-   NDN InterestHeader and routines to serialize/deserialize
+  * NDN InterestHeader and routines to serialize/deserialize
 
    Simplifications:
    - Name:  binary name components are not supported
@@ -129,7 +129,7 @@
 {
 public:
   /**
-   * Constructor
+   * \brief Constructor
    *
    * Creates a null header
    **/
@@ -139,22 +139,60 @@
    * \brief Set interest name
    *
    * Sets name of the interest. For example, SetName( CcnxNameComponents("prefix")("postfix") );
+   * @param[in] name const pointer to CcnxNameComponents object that contains an interest name
    **/
   void
   SetName (const Ptr<CcnxNameComponents> &name);
 
+
+  /**
+   * \brief Get interest name
+   *
+   * Gets name of the interest.
+   **/
   const CcnxNameComponents&
   GetName () const;
 
+  /**
+   * \brief Set interest MinSuffixComponents
+   *
+   * MinSuffixComponents refer to the number of name components beyond those in the prefix, 
+   * and counting the implicit digest, that may occur in the matching ContentObject.
+   * \see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html for more information.
+   * @param[in] value minimum length of suffix components
+   **/
   void
   SetMinSuffixComponents (int32_t value);
 
+  /**
+   * \brief Get interest MinSuffixComponents
+   *
+   * MinSuffixComponents refer to the number of name components beyond those in the prefix, 
+   * and counting the implicit digest, that may occur in the matching ContentObject.
+   * For more information, see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html
+   **/
   int32_t
   GetMinSuffixComponents () const;
 
+
+  /**
+   * \brief Set interest MaxSuffixComponents
+   *
+   * MaxSuffixComponents refer to the number of name components beyond those in the prefix, 
+   * and counting the implicit digest, that may occur in the matching ContentObject.
+   * \see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html for more information.
+   * @param[in] value maximum length of suffix components
+   **/
   void
   SetMaxSuffixComponents (int32_t value);
 
+  /**
+   * \brief Get interest MaxSuffixComponents
+   *
+   * MaxSuffixComponents refer to the number of name components beyond those in the prefix, 
+   * and counting the implicit digest, that may occur in the matching ContentObject.
+   * For more information, see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html
+   **/
   int32_t
   GetMaxSuffixComponents () const;
 
@@ -162,46 +200,122 @@
    * \brief Set exclude filer
    *
    * For example, SetExclude (CcnxNameComponents("exclude1")("exclude2")("exclude3"))
+   * @param[in] exclude const pointer to CcnxNameComponents to be excluded 
    **/
   void
   SetExclude (const Ptr<CcnxNameComponents> &exclude);
 
+  /**
+   * \brief Check if interest conatins exclude filter
+   *
+   */ 
   bool
   IsEnabledExclude () const;
   
+  /**
+   * \brief Get exclude filter 
+   */
   const CcnxNameComponents&
   GetExclude () const;
 
+  /**
+   * \brief Set ChildSelector
+   * Often a given interest will match more than one ContentObject within a given content store. 
+   * The ChildSelector provides a way of expressing a preference for which of these should be returned. 
+   * If the value is false, the leftmost child is preferred. If true, the rightmost child is preferred.
+   * \see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html for more information. 
+   * @param[in] value boolean ChildSelector value
+   */
   void
   SetChildSelector (bool value);
 
+  /**
+   * \brief Return ChildSelector value
+   * \see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html for more information.
+   *
+   */
   bool
   IsEnabledChildSelector () const;
 
+  /**
+   * \brief Set AnswerOriginKind
+   * Default value for AnswerOriginKind is false.
+   * @param[in] value boolean AnswerOriginKind value
+   */
   void
   SetAnswerOriginKind (bool value);
 
+  /**
+   * \brief Check the value of AnswerOriginKind
+   *
+   */
   bool
   IsEnabledAnswerOriginKind () const;
 
+  /**
+   * \brief Set Scope
+   * Scope limits where the Interest may propagate. 
+   * Scope 0 prevents propagation beyond the local ccnd (even to other applications on the same host).
+   * Scope 1 limits propagation to the applications on the originating host. 
+   * Scope 2 limits propagation to no further than the next host. 
+   * Other values are not defined, and will cause the Interest message to be dropped.
+   * Note that this is not a hop count - the value is not decremented as the interest is forwarded.
+   * @param[in] scope interest scope
+   */
   void
   SetScope (int8_t scope);
 
+  /**
+   * \brief Get Scope value
+   * Scope limits where the Interest may propagate. 
+   * Scope 0 prevents propagation beyond the local ccnd (even to other applications on the same host).
+   * Scope 1 limits propagation to the applications on the originating host. 
+   * Scope 2 limits propagation to no further than the next host. 
+   * Other values are not defined, and will cause the Interest message to be dropped.
+   * Note that this is not a hop count - the value is not decremented as the interest is forwarded.
+   */
   int8_t
   GetScope () const;
 
+  /**
+   * \brief Set InterestLifetime
+   * InterestLifetime indicates the (approximate) time remaining before the interest times out.
+   * The timeout is relative to the arrival time of the interest at the current node.
+   * \see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html for more information.
+   * @param[in] time interest lifetime  
+   */ 
   void
   SetInterestLifetime (Time time);
 
+  /**
+   * \brief Get InterestLifetime value
+   * InterestLifetime indicates the (approximate) time remaining before the interest times out.
+   * The timeout is relative to the arrival time of the interest at the current node.
+   * \see http://www.ccnx.org/releases/latest/doc/technical/InterestMessage.html for more information.
+   */ 
   Time
   GetInterestLifetime () const;
 
+  /**
+   * \brief Set Nonce
+   * Nonce carries a randomly-genenerated bytestring that is used to detect and discard duplicate Interest messages.
+   * @param[in] nonce Unique packet identification number
+   */
   void
   SetNonce (uint32_t nonce);
 
+  /**
+   * \brief Get Nonce value
+   * Nonce carries a randomly-genenerated bytestring that is used to detect and discard duplicate Interest messages.
+   *
+   */
   uint32_t
   GetNonce () const;
-    
+  
+  /**
+   * \enum NACK Type
+   * \brief Specifies the type of Interest packet
+   */
   enum
     {
       NORMAL_INTEREST = 0,
@@ -210,9 +324,22 @@
       NACK_GIVEUP_PIT = 12,
     };
 
+  /**
+   * \brief Mark the Interest as a Negative Acknowledgement
+   * Three types of NACKs are supported
+   * 1. NACK_LOOP 
+   * 2. NACK_CONGESTION
+   * 3. NACK_GIVEUP_PIT
+   * @param[in] nackType  NACK_LOOP or NACK_CONGESTION or NACK_GIVEUP_PIT or NORMAL_INTEREST
+   */
   void
   SetNack (uint32_t nackType);
     
+  /**
+  * \brief Get NACK type
+  * Returns NACK_LOOP, NACK_CONGESTION or NACK_GIVEUP_PIT. 
+  * Otherwise, in case of normal interest packet, returns NORMAL_INTEREST (equals 0).
+  */
   uint32_t
   GetNack () const;
 
@@ -220,24 +347,48 @@
   
   static TypeId GetTypeId (void);
   virtual TypeId GetInstanceTypeId (void) const;
+  
+  /**
+   * \brief Print Interest packet 
+   */
   virtual void Print (std::ostream &os) const;
+  
+  /**
+   * \brief Get the size of Interest packet
+   * Returns the Interest packet size after serialization
+   */
   virtual uint32_t GetSerializedSize (void) const;
+  
+  /**
+   * \brief Serialize Interest packet
+   * Serializes Interest packet into Buffer::Iterator
+   * @param[in] start buffer to contain serialized Interest packet
+   */
   virtual void Serialize (Buffer::Iterator start) const;
+  
+  /**
+   * \brief Deserialize Interest packet
+   * Deserializes Buffer::Iterator into Interest packet
+   * @param[in] start buffer that contains serialized Interest packet
+   */ 
   virtual uint32_t Deserialize (Buffer::Iterator start);
 
 private:
-  Ptr<CcnxNameComponents> m_name;
-  int32_t m_minSuffixComponents; ///< minimum suffix components. not used if negative
-  int32_t m_maxSuffixComponents; ///< maximum suffix components. not used if negative
-  Ptr<CcnxNameComponents> m_exclude; ///< exclude filter
-  bool m_childSelector;    
-  bool m_answerOriginKind; 
-  int8_t m_scope;            ///< -1 not set, 0 local scope, 1 this host, 2 immediate neighborhood
-  Time  m_interestLifetime;
-  uint32_t m_nonce; ///< Nonce. not used if zero
-  uint32_t m_nackType; 
+  Ptr<CcnxNameComponents> m_name;     ///< Interest name
+  int32_t m_minSuffixComponents;      ///< Minimum suffix components. not used if negative
+  int32_t m_maxSuffixComponents;      ///< Maximum suffix components. not used if negative
+  Ptr<CcnxNameComponents> m_exclude;  ///< Exclude filter
+  bool m_childSelector;               ///< Default value for ChildSelector is false
+  bool m_answerOriginKind;            ///< Default value for AnswerOriginKind is false
+  int8_t m_scope;                     ///< -1 not set, 0 local scope, 1 this host, 2 immediate neighborhood
+  Time  m_interestLifetime;           ///< InterestLifetime
+  uint32_t m_nonce;                   ///< Nonce. not used if zero
+  uint32_t m_nackType;                ///< Negative Acknowledgement type
 };
 
+/**
+ * \brief Exception class for CcnxInterestHeader
+ */
 class CcnxInterestHeaderException {};
 
 } // namespace ns3