diff --git a/Crypto/Random/DRBG.hs b/Crypto/Random/DRBG.hs
--- a/Crypto/Random/DRBG.hs
+++ b/Crypto/Random/DRBG.hs
@@ -72,7 +72,7 @@
           HmacDRBG, HashDRBG, CtrDRBG
         , HmacDRBGWith, HashDRBGWith, CtrDRBGWith
         -- * CryptoRandomGen Transformers
-        , GenXor
+        , GenXor(..)
         , GenBuffered
         , GenAutoReseed
         -- * AutoReseed generator construction with custom reseed interval
diff --git a/DRBG.cabal b/DRBG.cabal
--- a/DRBG.cabal
+++ b/DRBG.cabal
@@ -1,5 +1,5 @@
 name:           DRBG
-version:        0.5.3
+version:        0.5.4
 license:        BSD3
 license-file:   LICENSE
 author:         Thomas DuBuisson <thomas.dubuisson@gmail.com>
@@ -10,7 +10,7 @@
 category:       Cryptography
 stability:      stable
 build-type:     Simple
-cabal-version:  >= 1.6
+cabal-version:  >= 1.8
 tested-with:    GHC == 6.10.1
 Data-Files: Test/HMAC_DRBG.txt Test/Hash_DRBG.txt Test/CTR_DRBG.txt Test/Dual_EC_DRBG.txt CHANGELOG
 extra-source-files:
@@ -34,12 +34,11 @@
                    Crypto.Random.DRBG.Types
   other-modules: Crypto.Random.DRBG.HashDF
 
-Executable drbg_test
-  if !flag(test)
-    buildable: False
+Test-Suite test-drbg
+  ghc-options: -Wall
+  Type:                 exitcode-stdio-1.0
   main-is: Test/KAT.hs
-  if flag(test)
-    build-depends:   base
+  build-depends:     base
                    , QuickCheck
                    , crypto-api
                    , bytestring
@@ -50,7 +49,12 @@
                    , HUnit
                    , test-framework
                    , test-framework-hunit
-                   , cipher-aes
+                   , cipher-aes128
+                   , entropy
+                   , mtl
+                   , parallel
+                   , prettyclass
+                   , tagged
   other-modules: Paths_DRBG
 
 source-repository head
diff --git a/Test/KAT.hs b/Test/KAT.hs
--- a/Test/KAT.hs
+++ b/Test/KAT.hs
@@ -66,7 +66,7 @@
         ret    <- lookup "ReturnedBits" t'
         let f =
                 let hx        = hexStringToBS
-                    Just st0  = CTR.instantiate (hx eIn) (hx per) :: Maybe (CTR.State AESKey)
+                    Just st0  = CTR.instantiate (hx eIn) (hx per) :: Maybe (CTR.State AESKey128)
                     Just st1  = CTR.reseed st0 (hx eInPR1) (hx aIn1)
                     Just (_,st2) = CTR.generate st1 olen B.empty
                     Just st3 = CTR.reseed st2 (hx eInPR2) (hx aIn2)
@@ -88,7 +88,7 @@
         ret   <- lookup "ReturnedBits" t
         let f =
                 let hx = hexStringToBS
-                    Just st0     = CTR.instantiate (hx eIn) (hx per) :: Maybe (CTR.State AESKey)
+                    Just st0     = CTR.instantiate (hx eIn) (hx per) :: Maybe (CTR.State AESKey128)
                     Just (_,st1) = CTR.generate st0 olen (hx aIn1)
                     Just st2     = CTR.reseed st1 (hx eInRS) (hx aInRS)
                     Just (r1, _) = CTR.generate st2 olen (hx aIn2)
