code: function(id, key) {
        if(typeof id === 'string') {
          // if key is defined and of type string....
          if(typeof key === 'string') {
            // if id/key exists...
            if(memStore[id] && memStore[id][key]) {
              return when(memStore[id][key]);
            } else {
              return when.reject(new Error('bot.recall() could not find the value referenced by id/key'));
            }
          }
  
          // else if key is not defined
          else if(typeof key === 'undefined') {
            // if id exists...
            if(memStore[id]) {
              return when(memStore[id]);
            } else {
              return when.reject(new Error('bot.recall() has no key/values defined'));
            }
          }
  
          // else key is defined, but of wrong type
          else {
            return when.reject(new Error('bot.recall() key must be of type "string"'));
          }
        } else {
          return when.reject(new Error('bot.recall() Storage module must include a "id" argument of type "string"'));
        }
      }
docs: Recall value of data stored by 'key'.
  
  This method is exposed as bot.recall(key);
  
  @function
  @param {String} id - Room/Conversation/Context ID
  @param {String} [key] - Key under id object (optional). If key is not passed, all keys for id are returned as an object.
  @returns {(Promise.<String>|Promise.<Number>|Promise.<Boolean>|Promise.<Array>|Promise.<Object>)}