diff --git a/benchmarks/Bench/KMeans.hs b/benchmarks/Bench/KMeans.hs
--- a/benchmarks/Bench/KMeans.hs
+++ b/benchmarks/Bench/KMeans.hs
@@ -1,18 +1,20 @@
 module Bench.KMeans
     ( benchKMeans ) where
 
-import Criterion.Main
-import qualified Data.Matrix.Unboxed as MU
-import qualified Data.Vector.Unboxed as U
-import System.Random.MWC
-import System.IO.Unsafe
-
-import AI.Clustering.KMeans
+import           Criterion.Main
+import qualified Data.Matrix.Unboxed  as MU
+import qualified Data.Vector.Unboxed  as U
+import           Data.Word
+import           System.IO.Unsafe
+import           System.Random.MWC
 
-import Bench.Utils
+import           AI.Clustering.KMeans
+import           Bench.Utils
 
-gen :: GenIO
-gen = unsafePerformIO createSystemRandom
+gen :: U.Vector Word32
+gen = unsafePerformIO $ do
+    g <- createSystemRandom
+    fmap fromSeed $ save g
 
 dat :: MU.Matrix Double
 dat = unsafePerformIO $ fmap MU.fromRows $ randVectors 1000 10
@@ -21,11 +23,12 @@
 benchKMeans = bgroup "KMeans clustering"
     [ bgroup "AI.Clustering.KMeans"
         [ bench "k-means++ (n = 1000, k = 7)" $
-            whnfIO $ kmeans' gen KMeansPP 7 dat
+            whnf ( \x -> membership $ kmeans 7 x defaultKMeansOpts
+                { kmeansMethod = KMeansPP
+                , kmeansSeed = gen } ) dat
         , bench "forgy (n = 1000, k = 7)" $
-            whnfIO $ kmeans' gen Forgy 7 dat
+            whnf ( \x -> membership $ kmeans 7 x defaultKMeansOpts
+                { kmeansMethod = KMeansPP
+                , kmeansSeed = gen } ) dat
         ]
     ]
-
-kmeans' :: GenIO -> Method -> Int -> MU.Matrix Double -> IO (U.Vector Int)
-kmeans' g method k = fmap _clusters . kmeans g method k
diff --git a/clustering.cabal b/clustering.cabal
--- a/clustering.cabal
+++ b/clustering.cabal
@@ -1,5 +1,5 @@
 name:                clustering
-version:             0.3.0
+version:             0.3.1
 synopsis:            High performance clustering algorithms
 description:
   Following clutering methods are included in this library:
diff --git a/src/AI/Clustering/KMeans.hs b/src/AI/Clustering/KMeans.hs
--- a/src/AI/Clustering/KMeans.hs
+++ b/src/AI/Clustering/KMeans.hs
@@ -2,7 +2,7 @@
 
 module AI.Clustering.KMeans
     ( KMeans(..)
-    , KMeansOpts
+    , KMeansOpts(..)
     , defaultKMeansOpts
     , kmeans
     , kmeansBy
