diff --git node_access_example/node_access_example.module node_access_example/node_access_example.module
index 86416a5..19c1203 100755
--- node_access_example/node_access_example.module
+++ node_access_example/node_access_example.module
@@ -36,39 +36,39 @@ function node_access_example_perm() {
 }
 
 /**
- * Implementation of hook_node_grants().
- *
- * Tell the node access system what GIDs the user belongs to for each realm.
- * In this example, we are providing two realms: the example realm, which
- * has just one group id (1) and the user is either a member or not depending
- * upon the operation and the access permission set.
- *
- * We are also setting up a realm for the node author, though, to give it
- * special privileges. That has 1 GID for every UID, and each user is
- * automatically a member of the group where GID == UID.
- *
- */
-function node_access_example_node_grants($account, $op) {
-  if ($op == 'view' && user_access('access private content', $account)) {
-    $grants['example'] = array(1);
-  }
-
-  if (($op == 'update' || $op == 'delete') && user_access('edit private content', $account)) {
-    $grants['example'] = array(1);
-  }
-
-  $grants['example_author'] = array($account->uid);
-  return $grants;
-}
-
-/**
  * Implementation of hook_node_access_records().
  *
  * All node access modules must implement this hook. If the module is
  * interested in the privacy of the node passed in, return a list
- * of node access values for each grant ID we offer. Since this
- * example module only offers 1 grant ID, we will only ever be
- * returning one record.
+ * of node access values for each grant ID we offer.
+ *
+ * In this example, we are defining two realms:
+ * 
+ * The first is 'example_private_realm', which has a single grant ID (1),
+ * to which the user is either a member or not, depending upon the operation
+ * and the access permission set.
+ *
+ * The second is a realm called 'example_author_realm', to give the node
+ * author special privileges. example_author_realm has one grant ID for
+ * every UID, and each user is automatically a member of the group where
+ * GID == UID. This has the effect of giving each user their own grant ID
+ * for nodes they authored, within this realm.
+ * 
+ * This hook is called by node_access_acquire_grants() from core, when
+ * a node is saved, or when access permissions change in order to
+ * rebuild the {node_access} database table.
+ *
+ * The array you return will define the realm and the grant ID for a
+ * given node. This is stored in the {node_access} table for subsequent
+ * comparison against the user's realm and grant IDs, which you'll
+ * supply in hook_node_grants().
+ *
+ * Realm names and grant IDs are arbitrary. Official drupal naming
+ * conventions do not cover access realms, but since all realms are
+ * stored in the same database table, it's probably a good idea to
+ * use descriptive names which follow the module name, such as
+ * 'mymodule_realmname'.
+ *
  */
 function node_access_example_node_access_records($node) {
   // We only care about the node if it's been marked private. If not, it is
@@ -76,7 +76,7 @@ function node_access_example_node_access_records($node) {
   if (!empty($node->private)) {
     $grants = array();
     $grants[] = array(
-      'realm' => 'example',
+      'realm' => 'example_private_realm',
       'gid' => TRUE,
       'grant_view' => TRUE,
       'grant_update' => FALSE,
@@ -87,7 +87,7 @@ function node_access_example_node_access_records($node) {
     // For the example_author array, the GID is equivalent to a UID, which
     // means there are many many groups of just 1 user.
     $grants[] = array(
-      'realm' => 'example_author',
+      'realm' => 'example_author_realm',
       'gid' => $node->uid,
       'grant_view' => TRUE,
       'grant_update' => TRUE,
@@ -99,11 +99,43 @@ function node_access_example_node_access_records($node) {
 }
 
 /**
+ * Implementation of hook_node_grants().
+ *
+ * Tell the node access system what GIDs the user belongs to for each realm.
+ *
+ * hook_node_grants() is called when the node is being accessed, to determine
+ * grant ID and realm for the user. The system looks up the grant ID
+ * and realm for the node's ID in the {node_access} database table, and
+ * compares them to the grant ID and realm you supply here. If grant ID and
+ * realm match for both user and node, then the operation is allowed.
+ *
+ * Grant ID and realm are both defined by your module in
+ * hook_node_access_records().
+ *
+ */
+function node_access_example_node_grants($account, $op) {
+  // 'access private content' and 'edit private content' are permissions we
+  // defined in hook_perm().
+  if ($op == 'view' && user_access('access private content', $account)) {
+    $grants['example_private_realm'] = array(1);
+  }
+
+  if (($op == 'update' || $op == 'delete') && user_access('edit private content', $account)) {
+    $grants['example_private_realm'] = array(1);
+  }
+
+  // And finally everyone gets their own GID within example_author_realm.
+  $grants['example_author_realm'] = array($account->uid);
+  return $grants;
+}
+
+/**
  * Implementation of hook_form_alter()
  *
  * This module adds a simple checkbox to the node form labeled private. If the
  * checkbox is labelled, only the node author and users with 'access private content'
  * privileges may see it.
+ *
  */
 function node_access_example_form_alter(&$form, $form_state) {
   if ($form['#id'] == 'node-form') {
@@ -120,6 +152,9 @@ function node_access_example_form_alter(&$form, $form_state) {
  * Implementation of hook_nodeapi().
  *
  * The module must track the access status of the node.
+ *
+ * @see nodeapi_example.module
+ *
  */
 function node_access_example_nodeapi(&$node, $op, $arg = 0) {
   switch ($op) {
