   #
   # Returns int
   llen: (key) ->
-    Q(@_private[@key key].length)
+    Q(@data._private[@key key].length)
 
   # Public: set the list value at the specified index
   #
   # Returns promise
   lset: (key, index, value) ->
-    @_private[@key key][index] = @serialize value
+    @data._private[@key key][index] = @serialize value
     Q @
 
   # Public: insert a value into the list before or after the pivot element.

  # Returns promise
  rpush: (key, value) ->
    key = @key key
    if @_private[key] is undefined
      @_private[key] = []

    @_private[key].push(@serialize value)
    Q @

  # Public: pop a value off of the left-side of the list
  #
  # Returns promise for list item
  lpop: (key) ->
    Q(@deserialize(@_private[@key key].shift()))

  # Public: pop a value off of the right-side of the list
  #
  # Returns promise for list item
  rpop: (key) ->
    Q(@deserialize(@_private[@key key].pop()))

  # Public: get a list item by index
  #
  # Returns promise for list item
  lindex: (key, index) ->
    Q(@deserialize(@_private[@key key][index]))

  # Public: get a slice of the list
  #

  #
  # Returns promise for array.
  hkeys: (table) ->
    Q(_.keys(@data._private[@key table] or {}))

  # Public: Get all the values for the given hash table name
  #
  # Returns promise for array.
  hvals: (table) ->
    Q(_.mapValues(@data._private[@key table] or {}, @deserialize.bind(@)))

  # Public: Set a value in the specified hash table
  #
  # Returns promise for the value.
  hset: (table, key, value) ->
    table = @key table
    @data._private[table] = @data._private[table] or {}
    @data._private[table][key] = @serialize value
    Q @

  # Public: Get a value from the specified hash table.
  #
  # Returns: promise for the value.
  hget: (table, key) ->
    Q(@deserialize @data._private[@key table][key])

  # Public: Delete a field from a hash table
  #
  # Returns promise
  hdel: (table, key) ->
    delete @data._private[@key table][key]
    Q @

  # Public: Get the whole hash table as an object.
  #
  # Returns: promise for object.
  hgetall: (table) ->
    Q(_.clone(_.mapValues(@data._private[@key table], @deserialize.bind @)))

  # Public: increment the hash value by num atomically
  #
