diff --git a/cryptography/bindings/openssl/api.py b/cryptography/bindings/openssl/api.py
index f95e4d6..917c184 100644
--- a/cryptography/bindings/openssl/api.py
+++ b/cryptography/bindings/openssl/api.py
@@ -13,7 +13,7 @@
 
 from __future__ import absolute_import, division, print_function
 
-from cryptography.primitives.abc.block import modes
+from cryptography.primitives import interfaces
 
 import cffi
 
@@ -74,12 +74,14 @@
         )
         evp_cipher = self._lib.EVP_get_cipherbyname(ciphername.encode("ascii"))
         assert evp_cipher != self._ffi.NULL
-        iv_nonce = self._introspect(mode)
+        if isinstance(mode, interfaces.ModeWithInitializationVector):
+            iv_nonce = mode.initialization_vector
+        else:
+            iv_nonce = self._ffi.NULL
 
         # TODO: Sometimes this needs to be a DecryptInit, when?
         res = self._lib.EVP_EncryptInit_ex(
-            ctx, evp_cipher, self._ffi.NULL, cipher.key,
-            iv_nonce
+            ctx, evp_cipher, self._ffi.NULL, cipher.key, iv_nonce
         )
         assert res != 0
 
@@ -88,14 +90,6 @@
         self._lib.EVP_CIPHER_CTX_set_padding(ctx, 0)
         return ctx
 
-    def _introspect(self, mode):
-        if isinstance(mode, modes.ModeWithInitializationVector):
-            return mode.initialization_vector
-        elif isinstance(mode, modes.ModeWithNonce):
-            return mode.nonce
-        else:
-            return self._ffi.NULL
-
     def update_encrypt_context(self, ctx, plaintext):
         buf = self._ffi.new("unsigned char[]", len(plaintext))
         outlen = self._ffi.new("int *")
diff --git a/cryptography/primitives/abc/__init__.py b/cryptography/primitives/abc/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/cryptography/primitives/abc/__init__.py
+++ /dev/null
diff --git a/cryptography/primitives/abc/block/__init__.py b/cryptography/primitives/abc/block/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/cryptography/primitives/abc/block/__init__.py
+++ /dev/null
diff --git a/cryptography/primitives/block/modes.py b/cryptography/primitives/block/modes.py
index 1e9b14b..c722e73 100644
--- a/cryptography/primitives/block/modes.py
+++ b/cryptography/primitives/block/modes.py
@@ -13,7 +13,7 @@
 
 from __future__ import absolute_import, division, print_function
 
-from cryptography.primitives.abc.block import modes
+from cryptography.primitives import interfaces
 
 
 class CBC(object):
@@ -28,4 +28,4 @@
     name = "ECB"
 
 
-modes.ModeWithInitializationVector.register(CBC)
+interfaces.ModeWithInitializationVector.register(CBC)
diff --git a/cryptography/primitives/abc/block/modes.py b/cryptography/primitives/interfaces.py
similarity index 75%
rename from cryptography/primitives/abc/block/modes.py
rename to cryptography/primitives/interfaces.py
index 609a2ae..a2b091d 100644
--- a/cryptography/primitives/abc/block/modes.py
+++ b/cryptography/primitives/interfaces.py
@@ -14,8 +14,8 @@
 from __future__ import absolute_import, division, print_function
 
 import abc
+import six
 
 
-ModeWithInitializationVector = abc.ABCMeta('ModeWithInitializationVector',
-                                           (object, ), {})
-ModeWithNonce = abc.ABCMeta('ModeWithNonce', (object, ), {})
+class ModeWithInitializationVector(six.with_metaclass(abc.ABCMeta)):
+    pass
diff --git a/setup.py b/setup.py
index 1044c97..cbbf100 100644
--- a/setup.py
+++ b/setup.py
@@ -21,9 +21,11 @@
 
 
 CFFI_DEPENDENCY = "cffi>=0.6"
+SIX_DEPENDENCY = "six>=1.4.1"
 
 install_requires = [
     CFFI_DEPENDENCY,
+    SIX_DEPENDENCY
 ]
 
 setup_requires = [
diff --git a/tox.ini b/tox.ini
index 4d17ebe..02d521b 100644
--- a/tox.ini
+++ b/tox.ini
@@ -5,6 +5,7 @@
 deps =
     pytest-cov
     pretend
+    six
 commands = py.test --cov=cryptography/ --cov=tests/
 
 [testenv:docs]
