       items.append tuple
     return items
 
+  # http://docs.python.org/library/stdtypes.html#dict.iteritems
   iteritems: ->
     return new DictionaryItemIterator(@)
 
+  # http://docs.python.org/library/stdtypes.html#dict.iterkeys
   iterkeys: ->
     return new DictionaryKeyIterator(@)
 
+  # http://docs.python.org/library/stdtypes.html#dict.itervalues
   itervalues: ->
     return new DictionaryValueIterator(@)
 
-  # Returns a list of keys of this
+  # http://docs.python.org/library/stdtypes.html#dict.keys
   keys: ->
     keys = new List Object.keys(@value)
     return keys
 
-  # Returns the popped value at key if key exists. 
-  # Else returns `d` if default `d` exists
-  # Else raises `KeyError`
+  # http://docs.python.org/library/stdtypes.html#dict.pop
   pop: (key, d) ->
     keys = @keys()
     if keys.__contains__(key)

    randomValue = @__getitem__ randomKey
    return new Tuple [randomKey, randomValue]

  setdefault: (key, d) ->
    if key not in @keys().value
      @__setitem__ key, d
    return @value[key]

  # **Unimplemented**
  update: ->
  
  # Returns a list of values of this
  values: ->
    keys = @keys()
    values = new List()

    return values

  # **Unimplemented**
  # http://docs.python.org/library/stdtypes.html#dict.viewitems
  viewitems: ->

  # **Unimplemented**
  # http://docs.python.org/library/stdtypes.html#dict.viewkeys 
  viewkeys: ->

  # **Unimplemented**
  # http://docs.python.org/library/stdtypes.html#dict.viewvalues
  viewvalues: ->
