Grouping same methods under one subsection

Change-Id: I8915435632d5a92cabe6cf5335146729507ab6e5
diff --git a/blob.rst b/blob.rst
index 52c730a..8867d3d 100644
--- a/blob.rst
+++ b/blob.rst
@@ -12,8 +12,11 @@
 
 A Blob holds a pointer to an immutable byte array implemented as const std::vector<uint8_t>.  This is like a JavaScript string which is a pointer to an immutable string.  It is OK to pass a pointer to the string because the new owner can't change the bytes of the string.  However, like a JavaScript string, it is possible to change the pointer, and so this does allow the copy constructor and assignment to change the pointer.  Also remember that the pointer can be null.
 
-Blob Constructor
-----------------
+Blob Constructors
+-----------------
+
+Blob Constructor (from existing byte array)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Create a new Blob to point to an existing byte array.
 
@@ -50,8 +53,8 @@
     - `value`
         (optional) A pointer to a vector with the byte array.  This takes another reference and does not copy the bytes.  If omitted, this set this blob to a null pointer.
 
-Blob Constructor (``uint8_t *``)
---------------------------------
+Blob Constructor (from immutable ``uint8_t *`` array) (C++ only)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 (C++ only) Create a new Blob with an immutable copy of the given array.
 
@@ -75,7 +78,7 @@
         The length of value.
 
 Blob Constructor (copy byte array)
-----------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Create a new Blob with an immutable copy of the array in the given vector. If you want to transfer the array without copying, the the vector has to start as a type for the main Blob constructor.
 
diff --git a/face.rst b/face.rst
index 77cce7f..1faf5c6 100644
--- a/face.rst
+++ b/face.rst
@@ -9,8 +9,11 @@
 :[Python]:
     Module: ``pyndn``
 
+Face Constructors
+-----------------
+
 Face Constructor (explicit Transport)
--------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Create a new Face object with the given Transport to manage NDN communication.
 
@@ -61,7 +64,7 @@
             port: 9696
 
 Face Constructor (default Transport)
-------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Create a new Face object with optional settings to manage NDN communication.
 
@@ -111,8 +114,11 @@
             host: null, // If null, use getHostAndPort when connecting.
             port: 9696
 
+Face.expressInterest Methods
+----------------------------
+
 Face.expressInterest Method (from Interest)
--------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Send the interest through the transport, read the entire response and call onData. If the interest times out according to interest lifetime, call onTimeout (if not omitted).
 
@@ -167,7 +173,7 @@
     The pending interest ID which can be used with removePendingInterest.
 
 Face.expressInterest Method (from Name)
----------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Encode name as an Interest, using the interestTemplate if supplied, send the interest through the transport, read the entire response and call onData. If the interest times out according to interest lifetime, call onTimeout (if not omitted).
 C++ only: Your application must call processEvents.
diff --git a/name.rst b/name.rst
index fb217b2..6ca5af3 100644
--- a/name.rst
+++ b/name.rst
@@ -19,7 +19,7 @@
 
     .. code-block:: c++
     
-        ndn::Name::Component(
+        Name::Component(
             [const std::vector<uint8_t>& value]
         );
 
@@ -56,8 +56,11 @@
 :[Python]:
     Module: ``pyndn``
 
+Name Constructors
+-----------------
+
 Name Constructor (array of components)
---------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Create a new Name with the optional components.
 
@@ -88,10 +91,10 @@
 :Parameters:
 
     - ``components``
-        (optional) The array of name components.
+        (optional) The array of :ref:`name components <Name.Component>`.
 
 Name Constructor (from URI)
----------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Parse the uri according to the NDN URI Scheme and create the Name with the components.
 
@@ -266,8 +269,11 @@
 
     true if this matches the given name, otherwise false.  This always returns true if this name is empty.
 
+Name.append Methods
+-------------------
+
 Name.append Method (copy byte array)
-------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Append a new component, copying from byte array.
 
@@ -298,7 +304,7 @@
     This name so that you can chain calls to append.
 
 Name.append Method (from Blob)
-------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Append a new component, taking another pointer to the byte array in the Blob.
 
@@ -320,7 +326,7 @@
     This name so that you can chain calls to append.
 
 Name.append Method (from Component)
------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Append the component to this name.
 
@@ -342,7 +348,7 @@
     This name so that you can chain calls to append.
 
 Name.append Method (from Name)
-------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Append the components of the given name to this name.
 
diff --git a/transport.rst b/transport.rst
index 3cc9361..9458b4a 100644
--- a/transport.rst
+++ b/transport.rst
@@ -1,28 +1,20 @@
-Transport.ConnectionInfo Class
-==============================
-
-:[C++]:
-    Namespace: `ndn`
-
-
-A Transport.ConnectionInfo is a base class for connection information used by subclasses of Transport.
-
 Transport Class
 ===============
 
 :[C++]:
     Namespace: `ndn`
 
-Transport Constructor
----------------------
-
-Create a base class Transport where the methods throw an "unimplemented" error. You should use a derived class like :ref:`UdpTransport <UdpTransport>`.
-
 :Realizations:
 
     - :ref:`UdpTransport Class <UdpTransport>`
     - :ref:`TcpTransport Class <TcpTransport>`
 
+
+Transport Constructor
+---------------------
+
+Create a base class Transport where the methods throw an "unimplemented" error. You should use a derived class like :ref:`UdpTransport <UdpTransport>`.
+
 :[C++]:
 
     .. code-block:: c++
@@ -36,3 +28,11 @@
         var Transport = function Transport()
 
 
+Transport.ConnectionInfo Class
+------------------------------
+
+:[C++]:
+    Namespace: `ndn`
+
+
+A Transport.ConnectionInfo is a base class for connection information used by subclasses of Transport.