     for key in iterable
       @value[key] = iterable[key]
 
+  # Checks if the key exists in this
   __contains__: (key) ->
     return key in @value
 
+  # Removes the key,value pair from this
   __delitem__: (key) ->
-    delete @value[key]
+    delete @__getitem__(key)
 
   # ** Unimplemented **
   __eq__: (dict) ->


  # Returns a shallow copy of this
  copy: ->
    copy = {}
    for key in @value
      copy[key] = @value[key]
    return copy

  get: (key, d) ->
    if key in @value
      return @value[key]
    else
      return d


    return key in @value

  items: ->
    items = [] #Unsure if this should be JS list or Pythonscript List
    for key in @value
      val = @__getitem__(key)
      tuple = new Tuple(key, val)
      items.push(tuple)
    return items

