diff --git a/blackjack.py b/blackjack.py
index <HASH>..<HASH> 100644
--- a/blackjack.py
+++ b/blackjack.py
@@ -253,7 +253,7 @@ class BJ(object):
     root = NULL
 
     def __init__(self, iterable=None, comparator=cmp):
-        self._comparator = cmp
+        self._comparator = comparator
 
         if iterable is not None:
             for item in iterable:
@@ -312,6 +312,26 @@ class Deck(object):
     def __delitem__(self, key):
         self._bj.discard(key)
 
+    def iteritems(self):
+        return iter(self._bj)
+
+    def iterkeys(self):
+        for k, v in self.iteritems():
+            yield k
+
+    def itervalues(self):
+        for k, v in self.iteritems():
+            yield v
+
+    def items(self):
+        return list(self.iteritems())
+
+    def keys(self):
+        return list(self.iterkeys())
+
+    def values(self):
+        return list(self.itervalues())
+
 
 from unittest import TestCase
Well, that more or less works. Sort of.