diff --git a/src/action-log.cc b/src/action-log.cc
index 71ee782..0a05dd2 100644
--- a/src/action-log.cc
+++ b/src/action-log.cc
@@ -701,9 +701,10 @@
       action.set_action      (static_cast<ActionItem_ActionType> (sqlite3_column_int   (stmt, 2)));
       action.set_filename    (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 3)), sqlite3_column_bytes (stmt, 3));
       std::string directory  (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 4)), sqlite3_column_bytes (stmt, 4));
+      action.set_version     (sqlite3_column_int64 (stmt, 5));
+
       if (action.action () == 0)
         {
-          action.set_version     (sqlite3_column_int64 (stmt, 5));
           action.set_timestamp   (sqlite3_column_int64 (stmt, 6));
           action.set_file_hash   (sqlite3_column_blob  (stmt, 7), sqlite3_column_bytes (stmt, 7));
           action.set_mtime       (sqlite3_column_int   (stmt, 8));
@@ -772,9 +773,10 @@
       action.set_action      (static_cast<ActionItem_ActionType> (sqlite3_column_int   (stmt, 2)));
       action.set_filename    (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 3)), sqlite3_column_bytes (stmt, 3));
       std::string directory  (reinterpret_cast<const char *> (sqlite3_column_text  (stmt, 4)), sqlite3_column_bytes (stmt, 4));
+      action.set_version     (sqlite3_column_int64 (stmt, 5));
+
       if (action.action () == 0)
         {
-          action.set_version     (sqlite3_column_int64 (stmt, 5));
           action.set_timestamp   (sqlite3_column_int64 (stmt, 6));
           action.set_file_hash   (sqlite3_column_blob  (stmt, 7), sqlite3_column_bytes (stmt, 7));
           action.set_mtime       (sqlite3_column_int   (stmt, 8));
diff --git a/src/state-server.cc b/src/state-server.cc
index 43f15e3..89b6095 100644
--- a/src/state-server.cc
+++ b/src/state-server.cc
@@ -77,11 +77,11 @@
   // currently supporting limited number of command.
   // will be extended to support all planned commands later
 
-  // <PREFIX_INFO>/"actions"/"all"/<nonce>/<segment>  get list of all actions
+  // <PREFIX_INFO>/"actions"/"all"/<segment>  get list of all actions
   m_ccnx->setInterestFilter (Name (m_PREFIX_INFO)("actions")("folder"), bind(&StateServer::info_actions_folder, this, _1));
   m_ccnx->setInterestFilter (Name (m_PREFIX_INFO)("actions")("file"),   bind(&StateServer::info_actions_file, this, _1));
 
-  // <PREFIX_INFO>/"filestate"/"all"/<nonce>/<segment>
+  // <PREFIX_INFO>/"filestate"/"all"/<segment>
   m_ccnx->setInterestFilter (Name (m_PREFIX_INFO)("files")("folder"), bind(&StateServer::info_files_folder, this, _1));
 
   // <PREFIX_CMD>/"restore"/"file"/<one-component-relative-file-name>/<version>/<file-hash>
@@ -174,8 +174,8 @@
 void
 StateServer::info_actions_folder (const Name &interest)
 {
-  if (interest.size () - m_PREFIX_INFO.size () != 4 &&
-      interest.size () - m_PREFIX_INFO.size () != 5)
+  if (interest.size () - m_PREFIX_INFO.size () != 3 &&
+      interest.size () - m_PREFIX_INFO.size () != 4)
     {
       _LOG_DEBUG ("Invalid interest: " << interest);
       return;
@@ -188,8 +188,8 @@
 void
 StateServer::info_actions_file (const Name &interest)
 {
-  if (interest.size () - m_PREFIX_INFO.size () != 4 &&
-      interest.size () - m_PREFIX_INFO.size () != 5)
+  if (interest.size () - m_PREFIX_INFO.size () != 3 &&
+      interest.size () - m_PREFIX_INFO.size () != 4)
     {
       _LOG_DEBUG ("Invalid interest: " << interest);
       return;
@@ -203,7 +203,7 @@
 void
 StateServer::info_actions_fileOrFolder_Execute (const Ccnx::Name &interest, bool isFolder/* = true*/)
 {
-  // <PREFIX_INFO>/"actions"/"folder|file"/<folder|file>/<nonce>/<offset>  get list of all actions
+  // <PREFIX_INFO>/"actions"/"folder|file"/<folder|file>/<offset>  get list of all actions
 
   try
     {
@@ -212,9 +212,9 @@
       /// @todo !!! add security checking
 
       string fileOrFolderName;
-      if (interest.size () - m_PREFIX_INFO.size () == 5)
-        fileOrFolderName = interest.getCompFromBackAsString (2);
-      else // == 4
+      if (interest.size () - m_PREFIX_INFO.size () == 4)
+        fileOrFolderName = interest.getCompFromBackAsString (1);
+      else // == 3
         fileOrFolderName = "";
 /*
  *   {
@@ -234,13 +234,13 @@
       bool more;
       if (isFolder)
         {
-          m_actionLog->LookupActionsInFolderRecursively
+          more = m_actionLog->LookupActionsInFolderRecursively
             (boost::bind (StateServer::formatActionJson, boost::ref(actions), _1, _2, _3),
              fileOrFolderName, offset*10, 10);
         }
       else
         {
-          m_actionLog->LookupActionsForFile
+          more = m_actionLog->LookupActionsForFile
             (boost::bind (StateServer::formatActionJson, boost::ref(actions), _1, _2, _3),
              fileOrFolderName, offset*10, 10);
         }
@@ -249,8 +249,9 @@
 
       if (more)
         {
-          Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
-          json.push_back (Pair ("more", lexical_cast<string> (more)));
+          json.push_back (Pair ("more", lexical_cast<string> (offset + 1)));
+          // Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
+          // json.push_back (Pair ("more", lexical_cast<string> (more)));
         }
 
       ostringstream os;
@@ -324,8 +325,8 @@
 void
 StateServer::info_files_folder (const Ccnx::Name &interest)
 {
-  if (interest.size () - m_PREFIX_INFO.size () != 4 &&
-      interest.size () - m_PREFIX_INFO.size () != 5)
+  if (interest.size () - m_PREFIX_INFO.size () != 3 &&
+      interest.size () - m_PREFIX_INFO.size () != 4)
     {
       _LOG_DEBUG ("Invalid interest: " << interest << ", " << interest.size () - m_PREFIX_INFO.size ());
       return;
@@ -339,7 +340,7 @@
 void
 StateServer::info_files_folder_Execute (const Ccnx::Name &interest)
 {
-  // <PREFIX_INFO>/"filestate"/"folder"/<one-component-relative-folder-name>/<nonce>/<offset>
+  // <PREFIX_INFO>/"filestate"/"folder"/<one-component-relative-folder-name>/<offset>
   try
     {
       int offset = interest.getCompFromBackAsInt (0);
@@ -347,9 +348,9 @@
       // /// @todo !!! add security checking
 
       string folder;
-      if (interest.size () - m_PREFIX_INFO.size () == 5)
-        folder = interest.getCompFromBackAsString (2);
-      else // == 4
+      if (interest.size () - m_PREFIX_INFO.size () == 4)
+        folder = interest.getCompFromBackAsString (1);
+      else // == 3
         folder = "";
 
 /*
@@ -377,8 +378,9 @@
 
       if (more)
         {
-          Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
-          json.push_back (Pair ("more", lexical_cast<string> (more)));
+          json.push_back (Pair ("more", lexical_cast<string> (offset + 1)));
+          // Ccnx::Name more = Name (interest.getPartialName (0, interest.size () - 1))(offset + 1);
+          // json.push_back (Pair ("more", lexical_cast<string> (more)));
         }
 
       ostringstream os;
diff --git a/src/state-server.h b/src/state-server.h
index 22caf89..8809b7f 100644
--- a/src/state-server.h
+++ b/src/state-server.h
@@ -50,15 +50,15 @@
  *
  * - state: get list of SyncNodes, their sequence numbers, and forwarding hint (almost the same as RECOVERY interest)
  *
- *   <PREFIX_INFO>/"state"   (nonce should probably be the authentification code or authentication code should in addition somewhere)
+ *   <PREFIX_INFO>/"state"   (@todo: authentification code or authentication code should in addition somewhere)
  *
  * - action
  *
  *   Get list of actions for a folder (for all files under this folder)
  *
- *   <PREFIX_INFO>/"actions"/"folder"/<nonce>/<offset>   (all actions)
+ *   <PREFIX_INFO>/"actions"/"folder"/<offset>   (all actions)
  *   or
- *   <PREFIX_INFO>/"actions"/"folder"/<one-component-relative-file-name>/<nonce>/<offset>
+ *   <PREFIX_INFO>/"actions"/"folder"/<one-component-relative-file-name>/<offset>
  *
  *   Actions are ordered in decreasing order (latest will go first).
  *
@@ -98,15 +98,15 @@
  *      },
  *
  *      // only if there are more actions available
- *      "more": "<NDN-NAME-OF-NEXT-SEGMENT-OF-ACTION>"
+ *      "more": "next segment number"
  *   }
  *
  *
  * - file
  *
- *   <PREFIX_INFO>/"files"/"folder"/<nonce>/<offset>   (full filestate)
+ *   <PREFIX_INFO>/"files"/"folder"/<offset>   (full filestate)
  *   or
- *   <PREFIX_INFO>/"files"/"folder"/<one-component-relative-folder-name>/<nonce>/<offset>
+ *   <PREFIX_INFO>/"files"/"folder"/<one-component-relative-folder-name>/<offset>
  *
  *   Each Data packets contains a list of up to 100 files.
  *   If more items are available, application data will specify URL for the next packet
@@ -132,7 +132,7 @@
  *      ]
  *
  *      // only if there are more actions available
- *      "more": "<NDN-NAME-OF-NEXT-SEGMENT-OF-FILESTATE>"
+ *      "more": "next segment number"
  *   }
  *
  * Commands available:
