   __repr__: ->
   
   # Same as __or__ since union is symmetric  
-  __ror__: (set) ->
-    return @__or__(set)
-
-  # Subtract this from set
-  __rsub__: (set) ->
-    return set.__sub__(@)
+  __ror__: (otherSet) ->
+    return @__or__(otherSet)
+
+  # Subtract this from otherSet
+  __rsub__: (otherSet) ->
+    return otherSet.__sub__(@)
   
   # Same as __xor__ since xor is symmetric  
-  __rxor__: (set) ->
-    return @__xor__(set)
+  __rxor__: (otherSet) ->
+    return @__xor__(otherSet)
 
   # **Unimplemented**
   __sizeof__: ->
   
-  # Subtract new set containing this - set
-  __sub__: (set) ->
+  # Returns new set containing this - otherSet
+  __sub__: (otherSet) ->
     difference = @copy()
-    for item in set.value.keys()
+    for item in otherSet.value.keys().value
       if @__contains__(item).value
         difference.value.pop(item)
     return difference
 
-  # Returns new Set containing items in this or set, but not both
-  __xor__: (set) ->
-    diff1 = @__sub__(set)
-    diff2 = set.__sub__(@)
+  # Returns new Set containing items in this or otherSet, but not both
+  __xor__: (otherSet) ->
+    diff1 = @__sub__(otherSet)
+    diff2 = otherSet.__sub__(@)
     xor = diff1.__or__(diff2)
     return xor
   

  
  # http://docs.python.org/library/stdtypes.html#set.copy
  copy: ->
    keys = @keys()
    return new Set(keys)
  
  # http://docs.python.org/library/stdtypes.html#set.difference

  constructor: (iterable) ->
    @value = new Dict() # set just is a wrapped version of our own Dict class
    if iterable?
      for item in iterable.value # Temporary assumption: iterable is List of pythonic objects
        @value.__setitem__(item, new Bool(true))

  __and__: (otherSet) ->
