diff --git node_example/node_example.install node_example/node_example.install
index f7b9b67..ac3516c 100755
--- node_example/node_example.install
+++ node_example/node_example.install
@@ -28,6 +28,8 @@
  * @see field_update_instance()
  * @see field_create_field()
  * @see field_create_instance()
+ *
+ * @ingroup node_example
  */
 function node_example_install() {
   // use get_t() to get the name of our localization function for translation
@@ -88,6 +90,8 @@ function node_example_install() {
  *
  * This is packaged in a function so it can be used in both
  * node_example_install() and node_example_uninstall().
+ *
+ * @ingroup node_example
  */
 function _node_example_installed_fields() {
   $t = get_t();
@@ -124,13 +128,15 @@ function _node_example_installed_fields() {
  *
  * This is provided as a function so that it can be used in both hook_install()
  * and hook_uninstall().
+ *
+ * @ingroup node_example
  */
 function _node_example_installed_instances() {
   $t = get_t();
   return array(
     'node_example_color' => array(
       'field_name' => 'node_example_color',
-      'label'       => $t('The colors available for this object.'),
+      'label'       => $t('The colors available for this object'),
       'widget'      => array(
         'type'    => 'text_textfield',
       ),
@@ -177,6 +183,8 @@ function _node_example_installed_instances() {
 /**
  * Implements hook_uninstall().
  *
+ *
+ * @ingroup node_example
  */
 function node_example_uninstall() {
   // Gather all the example content that might have been created while this
diff --git node_example/node_example.module node_example/node_example.module
index e6563bb..9c1a119 100755
--- node_example/node_example.module
+++ node_example/node_example.module
@@ -3,8 +3,20 @@
 
 /**
  * @file
+ *
+ * Module implementation for node_example.
+ */
+
+/**
+ * @defgroup node_example Example:
+ * @ingroup examples
+ * @{
+ * Create a new node type in Drupal 7
+ *
  * This is an example outlining how a module can be used to define a new
- * node type.  In Drupal 7 we move most of what was once needed in this file
+ * node type.
+ *
+ * In Drupal 7 we move most of what was once needed in this file
  * to the node_example.install file so that it can be managed efficiently.
  *
  * Our example node type will allow users to specify multiple "colors",
@@ -13,25 +25,23 @@
  *
  * In previous versions of Drupal, "teaser" and "page" were node view modes.  In
  * Drupal 7 we can define custom view modes to let the node know how it should
- * return it's data.  This module declares a custom view mode called
- * "example_node_list".
+ * return it's data. For instance, an "rss" view mode would return appropriate
+ * XML. This module uses a custom view mode called "example_node_list"
+ * which will be used when the user goes to path examples/node_example.
  *
  * We no longer need an extra database table to store this content type's
- * information.
- *
- * Most node types that provide fields do not require any custom code for
- * the fields, as the fields system provides storage and access.
+ * information. Node types provided by modules generally won't need to implement
+ * code for their fields, since the field system provides very useful build-in
+ * storage and access.
  *
- * See @link http://drupal.org/node/707832 Field API Tutorial @endlink
+ * Also, it's generally easier to create a new content type in Drupal's fields
+ * UI than to create one in code. Try that first.
  *
- * See @link http://drupal.org/node/443536 Field API Handbook Page @endlink
+ * Consult the @link http://drupal.org/node/707832 Field API Tutorial @endlink
+ * and @link http://drupal.org/node/443536 Field API Handbook Page @endlink
+ * and @link field Field API documentation @endlink.
  *
- * See @link field Field API documentation @endlink
- *
- * See @link field_example.install field_example.install @endlink
- *
- * Remember that most node types do not require any custom code, as one
- * simply creates them using the fields UI.
+ * @see field_example.install
  */
 
 
@@ -51,14 +61,22 @@ function node_example_menu() {
 }
 
 /**
- * Custom callback that builds our content and returns it to the browser.
+ * Callback that builds our content and returns it to the browser.
+ *
+ * This callback comes from hook_menu().
  *
  * @return
- *   a build array
+ *   a renderable array showing a list of our nodes.
  *
+ * @see node_load()
+ * @see node_view()
+ * @see node_example_field_formatter_view()
  */
 function node_example_page() {
-  $build = array();
+  // We'll start building a renderable array that will be our page.
+  // For now we just declare the array.
+  $renderable_array = array();
+  // We query the database and find all of the nodes for the type we defined.
   $sql = 'SELECT nid FROM {node} n WHERE n.type = :type AND n.status = :status';
   $result = db_query($sql,
     array(
@@ -66,17 +84,18 @@ function node_example_page() {
       ':status' => 1,
     )
   );
-
+  $renderable_array['explanation'] = array(
+    '#markup' => t("Node Example nodes you've created will be displayed here. Note that the color fields will be displayed differently in this list, than if you view the node normally. Click on the node title to see the difference. This is a result of using our 'example_node_list' node view type."),
+    );
   // Loop through each of our node_example nodes and instruct node_view
   // to use our custom "example_node_list" view.
   // http://api.drupal.org/api/function/node_load/7
   // http://api.drupal.org/api/function/node_view/7
   foreach ($result as $row) {
     $node = node_load($row->nid);
-    $build['node_list'][]= node_view($node, 'example_node_list');
+    $renderable_array['node_list'][]= node_view($node, 'example_node_list');
   }
-
-  return $build;
+  return $renderable_array;
 }
 
 /**
@@ -148,10 +167,8 @@ function node_example_help($path, $arg) {
     case 'examples/node_example':
       return "<p>" . t(
         "The Node Example module provides a custom node type.
-        You can create new nodes using the <a href='!nodeadd'>node add form</a>.
-        Nodes that you create will be displayed here.",
-        array('!nodeadd' => url('node/add/node-example'))
-      ) . "</p>";
+        You can create new Example Node nodes using the <a href='!nodeadd'>node add form</a>.",
+        array('!nodeadd' => url('node/add/node-example'))) . "</p>";
   }
 }
 
@@ -166,3 +183,7 @@ function theme_example_node_color($variables) {
   $output = '<span style="background-color: #ccc; padding: 1em; margin-bottom: 1em; float: left; color: ' . $variables['color'] . '">' . $variables['color'] . '</span>';
   return $output;
 }
+
+/**
+ * @} End of "defgroup node_example".
+ */
\ No newline at end of file
