   # Gets the item from this: like `x[key]`
   __getitem__: (key) ->
     if @__contains__(key).value
-      return @value[hash(key).value]
+      keyHash = hash(key).value
+      collisionList = @value[keyHash]
+      for entry in collisionList
+        if key.__eq__(entry.key).value
+          return entry.value
     else
       raise new KeyError("#{str(key).value}")
 


  # Sets a value to the key in this: like `x[key] = value`
  __setitem__: (key, value) ->
    @value[hash(key).value] = value
    return
  
  #** Unimplemented **

  # http://docs.python.org/library/stdtypes.html#dict.items
  items: ->
    items = new List()
    for key in @keys().value
      val = @__getitem__(key)
      tuple = new Tuple([key, val])
      items.append(tuple)
