diff --git a/conf.py b/conf.py
index 7a84fc0..99d2789 100644
--- a/conf.py
+++ b/conf.py
@@ -25,7 +25,7 @@
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = []
+extensions = ['sphinxcontrib.fulltoc']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -91,7 +91,8 @@
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
-html_theme = 'pyramid'
+# html_theme = 'pyramid'
+html_theme = 'named_data_theme'
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
@@ -99,7 +100,7 @@
 #html_theme_options = {}
 
 # Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
+html_theme_path = ['./']
 
 # The name for this set of Sphinx documents.  If None, it defaults to
 # "<project> v<release> documentation".
diff --git a/face.rst b/face.rst
index 1faf5c6..28699fa 100644
--- a/face.rst
+++ b/face.rst
@@ -59,7 +59,8 @@
 
             getTransport: function() { return new WebSocketTransport(); },
             getHostAndPort: transport.defaultGetHostAndPort,
-                 // a function, on each call it returns a new { host: host, port: port } or null if there are no more hosts.
+                 // a function, on each call it returns 
+                 // a new { host: host, port: port } or null if there are no more hosts.
             host: null, // If null, use getHostAndPort when connecting.
             port: 9696
 
@@ -110,7 +111,8 @@
 
             getTransport: function() { return new WebSocketTransport(); },
             getHostAndPort: transport.defaultGetHostAndPort,
-                // a function, on each call it returns a new { host: host, port: port } or null if there are no more hosts.
+                // a function, on each call it returns a new 
+                // { host: host, port: port } or null if there are no more hosts.
             host: null, // If null, use getHostAndPort when connecting.
             port: 9696
 
diff --git a/index.rst b/index.rst
index 562d42e..1a4b946 100644
--- a/index.rst
+++ b/index.rst
@@ -8,6 +8,7 @@
 
 .. toctree::
    name
+   name-component
    interest
    data
    signature
diff --git a/name-component.rst b/name-component.rst
new file mode 100644
index 0000000..205ea0e
--- /dev/null
+++ b/name-component.rst
@@ -0,0 +1,44 @@
+.. _Name.Component:
+
+Name.Component Class
+====================
+
+A Name.Component is holds a read-only name component value
+
+:[C++]:
+
+    Namespace: ``ndn``
+
+Name.Component Constructor
+--------------------------
+
+Create a new Name.Component, copying the optional value.
+
+
+:[C++]:
+
+    .. code-block:: c++
+    
+        Name::Component(
+            [const std::vector<uint8_t>& value]
+        );
+
+:Parameters:
+
+    - ``value``
+        (optional) The content byte array to copy.
+
+Name.Component.toEscapedString Method
+-------------------------------------
+
+Convert this component value by escaping characters according to the NDN URI Scheme.
+
+:[C++]:
+
+    .. code-block:: c++
+    
+        std::string toEscapedString() const ();
+
+:Returns:
+
+    The escaped string.
diff --git a/name.rst b/name.rst
index 6ca5af3..0302ea1 100644
--- a/name.rst
+++ b/name.rst
@@ -1,48 +1,3 @@
-.. _Name.Component:
-
-Name.Component Class
-====================
-
-A Name.Component is holds a read-only name component value
-
-:[C++]:
-
-    Namespace: ``ndn``
-
-Name.Component Constructor
---------------------------
-
-Create a new Name.Component, copying the optional value.
-
-
-:[C++]:
-
-    .. code-block:: c++
-    
-        Name::Component(
-            [const std::vector<uint8_t>& value]
-        );
-
-:Parameters:
-
-    - ``value``
-        (optional) The content byte array to copy.
-
-Name.Component.toEscapedString Method
--------------------------------------
-
-Convert this component value by escaping characters according to the NDN URI Scheme.
-
-:[C++]:
-
-    .. code-block:: c++
-    
-        std::string toEscapedString() const ();
-
-:Returns:
-
-    The escaped string.
-
 .. _Name:
 
 Name Class
diff --git a/named_data_theme/static/default.css_t b/named_data_theme/static/default.css_t
new file mode 100644
index 0000000..5e27530
--- /dev/null
+++ b/named_data_theme/static/default.css_t
@@ -0,0 +1,14 @@
+@import url("agogo.css");
+
+pre {
+    padding: 10px;
+    background-color: #fafafa;
+    color: #222;
+    line-height: 1.2em;
+    border: 2px solid #C6C9CB;
+    font-size: 1.1em;
+    /* margin: 1.5em 0 1.5em 0; */
+    margin: 0;    
+    border-right-style: none;
+    border-left-style: none;
+}
diff --git a/named_data_theme/theme.conf b/named_data_theme/theme.conf
new file mode 100644
index 0000000..259a6d0
--- /dev/null
+++ b/named_data_theme/theme.conf
@@ -0,0 +1,9 @@
+[theme]
+inherit = agogo
+stylesheet = default.css
+# pygments_style = sphinx
+
+[options]
+
+stickysidebar = true
+collapsiblesidebar = true
