diff --git a/Database/MongoDB/Queue.hs b/Database/MongoDB/Queue.hs
--- a/Database/MongoDB/Queue.hs
+++ b/Database/MongoDB/Queue.hs
@@ -2,12 +2,14 @@
 module Database.MongoDB.Queue (
     emit
   , nextFromQueue
-  , createEmitter
-  , createWorker
+  , createEmitter, mkEmitter, EmitterOpts (..)
+  , createWorker, mkWorker, WorkerOpts (..)
+
 ) where
 
 import Prelude hiding (lookup)
 import Control.Exception.Base (throwIO, Exception)
+import Data.Default (Default (..))
 import Data.Typeable (Typeable)
 import Database.MongoDB
 import Control.Monad.IO.Class (MonadIO, liftIO)
@@ -59,22 +61,20 @@
                     , qeCollection :: Collection
                     }
 
-data EmitterOpts = EmitterOpts {
-                     emitterVersion :: Int
-                   , emitterRunner :: DBRunner
+data EmitterOpts = EmitterOpts
+                   { emitterVersion :: Int
                    , emitterCollection :: Collection
                    }
 
+instance Default EmitterOpts where
+    def = EmitterOpts 1 queueCollection
+
+
 -- | create a QueueEmitter
 createEmitter :: DBRunner -> IO QueueEmitter
-createEmitter runEmitter = mkEmitter $ EmitterOpts {
-                             emitterVersion = 1
-                           , emitterRunner = runEmitter
-                           , emitterCollection = queueCollection
-                           }
-
-mkEmitter :: EmitterOpts -> IO QueueEmitter
-mkEmitter EmitterOpts {..} = do
+createEmitter runEmitter = mkEmitter def runEmitter
+mkEmitter :: EmitterOpts -> DBRunner -> IO QueueEmitter
+mkEmitter EmitterOpts {..} emitterRunner = do
   name <- getHostName
   return $ QueueEmitter emitterVersion name emitterRunner emitterCollection
 
@@ -89,7 +89,7 @@
           ]
           -- TODO: add timestamp
           -- but actually the _id will already have a timestamp
-          -- localTime: dt, 
+          -- localTime: dt,
           -- globalTime: new Date(dt-self.serverTimeOffset),
           -- pickedTime: new Date(dt-self.serverTimeOffset),
 
@@ -98,23 +98,20 @@
                    , qwCursor :: Cursor
                    , qwCollection :: Collection
                    }
-data WorkerOpts = WorkerOpts { 
-                    workerRunner :: DBRunner
-                  , workerMaxByteSize :: Int
+data WorkerOpts = WorkerOpts
+                  { workerMaxByteSize :: Int
                   , workerCollection :: Collection
                   }
+instance Default WorkerOpts where
+    def = WorkerOpts 100000 queueCollection
 
 -- | creates a QueueWorker
 -- Do not 'work' multiple times against the same QueueWorker
 createWorker :: DBRunner -> IO QueueWorker
-createWorker runWorker = mkWorker $ WorkerOpts { 
-                         workerRunner = runWorker
-                       , workerMaxByteSize = 100000
-                       , workerCollection = queueCollection
-                       }
+createWorker runWorker = mkWorker def runWorker
 
-mkWorker :: WorkerOpts -> IO QueueWorker
-mkWorker WorkerOpts {..} = do
+mkWorker :: WorkerOpts -> DBRunner -> IO QueueWorker
+mkWorker WorkerOpts {..} workerRunner = do
     _<- workerRunner $
       createCollection [Capped, MaxByteSize workerMaxByteSize] workerCollection
     cursor <- getCursor workerRunner workerCollection
diff --git a/mongodb-queue.cabal b/mongodb-queue.cabal
--- a/mongodb-queue.cabal
+++ b/mongodb-queue.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mongodb-queue
-version:             0.2.2.1
+version:             0.2.3.0
 synopsis:            a message queue using MongoDB
 -- description:         
 homepage:            https://github.com/docmunch/haskell-mongodb-queue
@@ -25,11 +25,12 @@
   -- other-modules:       
   build-depends:
       base > 4.5 && < 5
-    , mongoDB
+    , mongoDB >= 1.3.1 && < 1.4
     , transformers
     , monad-control
     , text
     , network
+    , data-default
 
 test-suite test
   type: exitcode-stdio-1.0
@@ -41,12 +42,13 @@
 
   build-depends:
       base > 4.5 && < 5
-    , mongoDB
+    , mongoDB >= 1.3.1 && < 1.4
     , transformers
     , monad-control
     , text
     , network
     , hspec
+    , data-default
 
 
 
