diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -9,7 +9,7 @@
 import Alea.Random
 
 _NAME = "Alea"
-_VERSION = "0.1.0"
+_VERSION = "0.2.0"
 _INFO = _NAME ++ " version " ++ _VERSION
 _ABOUT = "a diceware passphrase generator"
 _COPYRIGHT = "(C) Michele Guerini Rocco 2014"
@@ -41,15 +41,17 @@
 main :: IO ()
 main = getProgArgs >>= defaults >>= exec
 
--- Assign defaults value to unspecified args
+-- Assign default values to unspecified args
 defaults :: Args -> IO Args
 defaults args@Args{..} = do
-	dictionary <- getDataFileName "dict/diceware" >>= readFile
+	defaultDict <- getDataFileName "dict/diceware" >>= readFile
+	dict <- readFile dictionary
 	return args
-		{ dictionary   = dictionary
+		{ dictionary   = if null dict then defaultDict else dict
 		, phraseLength = if phraseLength == 0 then 6 else phraseLength
 		}
 
+-- Main function
 exec :: Args -> IO ()
 exec args@Args{..} =
 	if interactive
@@ -61,4 +63,4 @@
 		-- helpers
 		dice  n = readDiceware  (parseDiceware dictionary) (read n :: Int)
 		dice' n = readDiceware' (parseDiceware dictionary) n
-		dictSize = size $ parseDiceware dictionary
+		dictSize = length $ parseDiceware dictionary
diff --git a/alea.cabal b/alea.cabal
--- a/alea.cabal
+++ b/alea.cabal
@@ -1,5 +1,5 @@
 name:                alea
-version:             0.1.1.0
+version:             0.2.0.0
 synopsis:            a diceware passphrase generator
 description:
 
@@ -26,4 +26,4 @@
   other-extensions:    DeriveDataTypeable, RecordWildCards
   build-depends:       base ==4.7.* , containers ==0.5.*,
                        cmdargs ==0.10.*, random ==1.1.*
-  --ghc-options:         -dynamic
+  ghc-options:         -O2
