docs: function (cb) {
                    // card key
                    var url = options.url.replace(/light=true/i, ''),
                      params = {
                        legacyCardKey: Utils.getLegacyCardKey(url, process.env.CARD_SECRET),
                        cardKey: Utils.getCardKey(url, process.env.CARD_SECRET)
                      };
  
                    // extract input values
                    _.each(_.keys(options.inputValues), function (key) {
                      params[key] = options.inputValues[key];
                    });
  
                    if (options.inputValues.token) {
  
                      // retrieve previously saved parameters. Add or replace params
                      DB.unlock(options.packName, options.cardName, options.inputValues.token, process.env.LOCK_KEY, function (err, payload) {
                        if (err) {
                          // Ignore error and just return the params.
                          cb(null, params);
                        }
                        else {
                          if (payload && _.isObject(payload)) {
                            _.each(_.keys(Card.inputs), function (key) {
                              if (payload[key]) {
                                params[key] = Base64.decode(payload[key]);
                              }
                            });
                          }
  
                          cb(null, params);
                        }
                      });
                    }
                    else {
                      cb(null, params);
                    }
                  }