   # 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 **

    if length.__ne__(otherLength).value
      return length.__lt__(otherLength)
    else
      # keys = Object.keys(@value).sort()
      # otherKeys = Object.keys(otherDict.value).sort()
      keys = @keys().value.sort()
      otherKeys = otherDict.keys().value.sort()
      for key,i in keys
        otherKey = otherKeys.__getitem__(i)
        if key.__ge__(otherKey).value
