diff --git a/app/Dummy.hs b/app/Dummy.hs
new file mode 100644
--- /dev/null
+++ b/app/Dummy.hs
@@ -0,0 +1,2 @@
+main :: IO ()
+main = putStrLn "Test suite not yet implemented"
diff --git a/app/TestGen.hs b/app/TestGen.hs
new file mode 100644
--- /dev/null
+++ b/app/TestGen.hs
@@ -0,0 +1,67 @@
+{-# OPTIONS_GHC -Wall #-}
+
+module Main ( main ) where
+
+import System.Random ( newStdGen, next )
+import System.Random.TF ( newTFGen )
+-- import qualified System.Random.PCG.Fast.Pure as PCG
+import qualified System.Random.MWC as MWC
+import System.Random.Mersenne.Pure64 ( newPureMT )
+-- import Control.Monad ( join )
+import System.Random ( RandomGen )
+import Test.HTestU (TestResult, runBatteryToResults, c_smallCrush)
+import Test.HTestU.Streaming (nextStreamFromGen)
+import Test.HTestU.Wrapping (Battery)
+
+import Control.Monad.Primitive
+import System.IO.Unsafe
+
+
+-- Actions for running batteries on a newly generated instance of a PRNG
+
+runCrush :: (RandomGen g) =>
+             Battery -> IO g -> IO [TestResult]
+runCrush crush gen = (\g -> runBatteryToResults nextStreamFromGen g crush ) `fmap`
+                      gen
+
+runSmallCrushStd :: IO [TestResult]
+runSmallCrushStd = runCrush c_smallCrush newStdGen
+
+runSmallCrushTF :: IO [TestResult]
+runSmallCrushTF = runCrush c_smallCrush newTFGen
+
+-- runSmallCrushPCG :: IO [TestResult]
+-- runSmallCrushPCG = runCrush c_smallCrush (join $ fmap PCG.save PCG.create)
+
+data MWCRNG = MWCRNG (MWC.Gen (PrimState IO))
+
+instance RandomGen MWCRNG where
+  next g@(MWCRNG gen) = unsafeDupablePerformIO $
+   do v <- MWC.uniform gen
+      return (v, g)
+
+runSmallCrushMWC :: IO [TestResult]
+runSmallCrushMWC = do
+  s <- MWC.create
+  runCrush c_smallCrush (return $ MWCRNG s)
+
+runSmallCrushMT :: IO [TestResult]
+runSmallCrushMT = runCrush c_smallCrush newPureMT
+
+main :: IO ()
+main = do
+  rStd <- runSmallCrushStd
+  putStrLn "Standard"
+  putStrLn $ show rStd
+  rTF <- runSmallCrushTF
+  putStrLn "TF"
+  putStrLn $ show rTF
+  -- rPCG <- runSmallCrushPCG
+  -- putStrLn "PCG"
+  -- putStrLn $ show rPCG
+  rMWC <- runSmallCrushMWC
+  putStrLn "MWC"
+  putStrLn $ show rMWC
+  rMT <- runSmallCrushMT
+  putStrLn "MT"
+  putStrLn $ show rMT
diff --git a/htestu.cabal b/htestu.cabal
--- a/htestu.cabal
+++ b/htestu.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                htestu
-version:             0.1.0.0
+version:             0.1.1.0
 synopsis:            A library for testing correctness of pseudo random number generators in Haskell.
 description:
   HTestU is a library for testing correctness of presudo random number generators (PRNGs) written in Haskell.
@@ -27,6 +27,10 @@
     type:     git
     location: https://github.com/idontgetoutmuch/htestu
 
+flag testKnownRNGs
+  description: build an exe to test selected Haskell RNGs
+  default: False
+
 library
   exposed-modules:     Test.HTestU,
                        Test.HTestU.Streaming,
@@ -42,3 +46,23 @@
   include-dirs: cbits/testu/include
   c-sources: cbits/testu/src/util.c cbits/testu/src/chrono.c cbits/testu/src/bitset.c cbits/testu/src/num.c cbits/testu/src/num2.c cbits/testu/src/mystr.c cbits/testu/src/tables.c cbits/testu/src/statcoll.c cbits/testu/src/gofs.c cbits/testu/src/gofw.c cbits/testu/src/gdef.c cbits/testu/src/vectorsF2.c cbits/testu/src/swrite.c cbits/testu/src/wdist.c cbits/testu/src/smultin.c cbits/testu/src/svaria.c cbits/testu/src/swalk.c cbits/testu/src/sstring.c cbits/testu/src/sspectral.c cbits/testu/src/sres.c cbits/testu/src/snpair.c cbits/testu/src/smarsa.c cbits/testu/src/sknuth.c cbits/testu/src/scomp.c cbits/testu/src/ftab.c cbits/testu/src/fres.c cbits/testu/src/fmass.c cbits/testu/src/fdist.c cbits/testu/src/fcho.c cbits/testu/src/fbar.c cbits/testu/src/fmarsa.c  cbits/testu/src/ufile.c cbits/testu/src/unif01.c cbits/testu/src/bbattery.c
   ghc-options:        -O2
+
+executable runTestu
+    if flag(testKnownRNGs)
+        hs-source-dirs:      app
+        main-is:             TestGen.hs
+        ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N -O2
+        build-depends:       base
+                           , htestu
+                           , random
+                           -- , pcg-random
+                           , tf-random
+                           , mwc-random
+                           , mersenne-random-pure64
+                           , primitive
+        default-language:    Haskell2010
+    else
+        hs-source-dirs:      app
+        main-is:             Dummy.hs
+        ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N
+        build-depends:       base
