diff --git a/apps/ExperimentMain.hs b/apps/ExperimentMain.hs
--- a/apps/ExperimentMain.hs
+++ b/apps/ExperimentMain.hs
@@ -17,8 +17,8 @@
 argParser :: ParserInfo ExperimentArgs
 argParser = info (helper <*> options) ( fullDesc <> header "Runs Hopfield experiments" )
   where
-    options = ExperimentArgs <$> argument str ( metavar "EXPERIMENT" <> help "the name of the experiment to run" )
-                             <*> arguments str ( metavar "EXPERIMENT_ARGS" <> help "experiment parameters" )
+    options = ExperimentArgs <$>       argument str ( metavar "EXPERIMENT" <> help "the name of the experiment to run" )
+                             <*> many (argument str ( metavar "EXPERIMENT_ARGS" <> help "experiment parameters" ))
 
 
 main :: IO ()
diff --git a/apps/Recognize.hs b/apps/Recognize.hs
--- a/apps/Recognize.hs
+++ b/apps/Recognize.hs
@@ -108,16 +108,16 @@
 
 
 runOptions :: Parser RecognizeArgs
-runOptions = RunOptions <$> argument str  ( metavar "METHOD"     <> help "hopfield, boltzmann or cboltzmann" )
-                        <*> argument auto ( metavar "WIDTH"      <> help "width images are resized to" )
-                        <*> argument auto ( metavar "HEIGHT"     <> help "height images are resized to" )
-                        <*> argument str  ( metavar "QUERY_PATH" <> help "image to match" )
-                        <*> arguments str ( metavar "FILE_PATHS" <> help "images to match against (training set)" )
+runOptions = RunOptions <$>       argument str  ( metavar "METHOD"     <> help "hopfield, boltzmann or cboltzmann" )
+                        <*>       argument auto ( metavar "WIDTH"      <> help "width images are resized to" )
+                        <*>       argument auto ( metavar "HEIGHT"     <> help "height images are resized to" )
+                        <*>       argument str  ( metavar "QUERY_PATH" <> help "image to match" )
+                        <*> many (argument str  ( metavar "FILE_PATHS" <> help "images to match against (training set)" ))
                         <*> switch ( long "save-all-patterns" <> help "save all intermediate patterns to harddisk" )
 
 
 benchmarkOptions :: Parser RecognizeArgs
-benchmarkOptions = BenchmarkOptions <$> arguments str ( metavar "FILE_PATHS" <> help "Target for the greeting" )
+benchmarkOptions = BenchmarkOptions <$> many (argument str ( metavar "FILE_PATHS" <> help "Target for the greeting" ))
 
 
 inbuiltBenchmarkOptions :: Parser RecognizeArgs
diff --git a/hopfield.cabal b/hopfield.cabal
--- a/hopfield.cabal
+++ b/hopfield.cabal
@@ -1,5 +1,5 @@
 name:          hopfield
-version:       0.1.0.1
+version:       0.1.0.2
 license:       MIT
 author:        Mihaela Rosca, Lukasz Severyn, Niklas Hambuechen, Razvan Marinescu, Wael Al Jisihi
 copyright:     Copyright: (c) 2012 Mihaela Rosca, Lukasz Severyn, Niklas Hambuechen, Razvan Marinescu, Wael Al Jisihi
@@ -76,7 +76,7 @@
     , random-fu >= 0.2.3.1
     , rvar >= 0.2.0.1
     , vector >= 0.9.1
-    , QuickCheck >= 2.4.2
+    , QuickCheck >= 2.7.3
     , deepseq >= 1.3.0.0
     , monad-loops >= 0.3.3.0
     , split >= 0.2.1.1
@@ -146,7 +146,7 @@
     , erf >= 2.0.0.0
     , hspec >= 1.3.0.1
     , HUnit >= 1.2.4.2
-    , QuickCheck >= 2.4.2
+    , QuickCheck >= 2.7.3
     , vector >= 0.9.1
     , MonadRandom >= 0.1.8
     , random >= 1.0.1.1
diff --git a/src/Hopfield/Experiments/Experiment.hs b/src/Hopfield/Experiments/Experiment.hs
--- a/src/Hopfield/Experiments/Experiment.hs
+++ b/src/Hopfield/Experiments/Experiment.hs
@@ -3,9 +3,7 @@
 module Hopfield.Experiments.Experiment where
 
 import Control.Monad (replicateM)
-import Control.Monad.Random
 import Test.QuickCheck
-import Test.QuickCheck.Gen (unGen)
 
 import Hopfield.Clusters
 import Hopfield.Common
@@ -17,13 +15,6 @@
 import Hopfield.Util
 
 
-genIO :: Gen a -> IO a
-genIO g = do
-    rndInt <- randomIO
-    stdGen <- getStdGen
-    return $ unGen g stdGen rndInt
-
-
 errorHeader :: String
 errorHeader = "Degree\tExpected error"
 
@@ -41,7 +32,7 @@
 
 
     -- The super attractor - primary care giver
-    originPat <- genIO $ patternGen H n
+    originPat <- generate $ patternGen H n
 
     -- Sample random patterns with Hamming distance between 25-75% from origin
     -- This is to ensure that this is a pure super attractor experiment
diff --git a/src/Hopfield/Experiments/Experiment2SuperAttractors.hs b/src/Hopfield/Experiments/Experiment2SuperAttractors.hs
--- a/src/Hopfield/Experiments/Experiment2SuperAttractors.hs
+++ b/src/Hopfield/Experiments/Experiment2SuperAttractors.hs
@@ -4,9 +4,7 @@
 module Hopfield.Experiments.Experiment2SuperAttractors where
 
 import Control.Monad (replicateM)
-import Control.Monad.Random
 import Test.QuickCheck
-import Test.QuickCheck.Gen (unGen)
 
 import Hopfield.Common
 import Hopfield.Experiments.ExperimentUtil
@@ -17,13 +15,6 @@
 import Hopfield.Util
 
 
-genIO :: Gen a -> IO a
-genIO g = do
-    rndInt <- randomIO
-    stdGen <- getStdGen
-    return $ unGen g stdGen rndInt
-
-
 basinHeader :: String
 basinHeader = "Degree\tOrigin basin\tNew basin"
 
@@ -38,7 +29,7 @@
 
 
     -- The first super attractor - primary care giver
-    originPat <- genIO $ patternGen H n
+    originPat <- generate $ patternGen H n
 
     -- Sample random patterns with Hamming distance between 25-75% from origin
     -- This is to ensure that this is a pure super attractor experiment
