     else
       raise new KeyError "#{key}"
 
-  # Pops random item from this and returns a 2-tuple
+  # http://docs.python.org/library/stdtypes.html#dict.popitem
   popitem: ->
     if @__len__().value == 0
       raise new KeyError "popitem(): dictionary is empty"

    return values

  # **Unimplemented**
  viewitems: ->

  # **Unimplemented**
  viewkeys: ->

  # **Unimplemented**
  viewvalues: ->
    randomValue = @__getitem__ randomKey
    return new Tuple [randomKey, randomValue]

  # http://docs.python.org/library/stdtypes.html#dict.setdefault
  setdefault: (key, d) ->
    if key not in @keys().value
      @__setitem__ key, d
    return @value[key]

  # **Unimplemented**
  # http://docs.python.org/library/stdtypes.html#dict.update
  update: ->
  
  # http://docs.python.org/library/stdtypes.html#dict.values
  values: ->
    keys = @keys()
    values = new List()
