diff --git a/src/wiki4e-mkepub-cache.hs b/src/wiki4e-mkepub-cache.hs
new file mode 100644
--- /dev/null
+++ b/src/wiki4e-mkepub-cache.hs
@@ -0,0 +1,46 @@
+import Text.HTML.TagSoup
+import System.Environment
+import System.Directory
+import System.FilePath
+import Data.Maybe (catMaybes)
+import Control.Monad (liftM)
+import System.IO 
+import Network.URL
+import Wiki4e.Commands
+import Network.Wikipedia (isArticleURL)
+
+defaultEbookName = "Wikipedia_Articles_From_Cache"
+
+main = do
+  name <- getProgName
+  args <- getArgs
+  case args of 
+      []      -> cache2epub defaultEbookName
+      ['-':_] -> usageHelp name
+      ['/':_] -> usageHelp name
+      [xs]    -> cache2epub xs
+      _       -> usageHelp name
+
+usageHelp name = putStrLn $ "Usage: " ++ name ++ " [<Title Name of new e-book>]"
+
+cache2epub bookName = do
+  hSetBinaryMode stdout True
+  config <- wiki4e_initConfig
+  arts <- wiki4e_listCacheURLs config
+  putStrLn "# STAGE 1/5 - Verify Articles..."
+  wiki4e_fetchArticles config arts
+  putStrLn "# STAGE 2/5 - Sanitize Articles..."
+  wiki4e_sanitizeArticles config arts
+  putStrLn "# STAGE 3/5 - Inspect Articles for Images..."
+  imgs <- wiki4e_listArticlesImages config arts
+  putStrLn "# STAGE 4/5 - Download Images..."
+  wiki4e_fetchImages config imgs
+  putStrLn "# STAGE 5/5 - Constructing EPUB..."
+  wiki4e_createEpub config bookName arts imgs
+  putStrLn "Done."
+
+-- | It is expected that all articles are from english wikipedia
+wiki4e_listCacheURLs :: Wiki4eConfig -> IO [URL]
+wiki4e_listCacheURLs config = do
+  files <- liftM (filter (\(c:_) -> c /= '.')) $ getDirectoryContents (w4confDirFetch config)
+  return $ catMaybes $ map (importURL) (map (\x -> "http://en.wikipedia.org/wiki/"++x) files)
diff --git a/src/wiki4e-mkepub-firefox.hs b/src/wiki4e-mkepub-firefox.hs
new file mode 100644
--- /dev/null
+++ b/src/wiki4e-mkepub-firefox.hs
@@ -0,0 +1,44 @@
+import Text.HTML.TagSoup
+import System.Environment
+import System.Directory
+import System.FilePath
+import Data.List (nub)
+import System.IO 
+import Network.URL
+import Wiki4e.Commands
+import Network.Wikipedia (isArticleURL)
+import Web.Firefox
+
+defaultEbookName = "Wikipedia_Articles_From_Firefox"
+
+main = do
+  name <- getProgName
+  args <- getArgs
+  case args of 
+      []      -> firefox2epub defaultEbookName
+      ['-':_] -> usageHelp name
+      ['/':_] -> usageHelp name
+      [xs]    -> firefox2epub xs
+      _       -> usageHelp name
+
+usageHelp name = putStrLn $ "Usage: " ++ name ++ " [<Title Name of new e-book>]"
+
+firefox2epub bookName = do
+  hSetBinaryMode stdout True
+  arts <- wiki4e_listFirefoxURLs
+  config <- wiki4e_initConfig
+  putStrLn "# STAGE 1/4 - Download Articles..."
+  wiki4e_fetchArticles config arts
+  putStrLn "# STAGE 2/4 - Sanitize Articles..."
+  wiki4e_sanitizeArticles config arts
+  putStrLn "# STAGE 3/4 - Download Images..."
+  imgs <- wiki4e_listArticlesImages config arts
+  wiki4e_fetchImages config imgs
+  putStrLn "# STAGE 4/4 - Constructing EPUB..."
+  wiki4e_createEpub config bookName arts imgs
+  putStrLn "Done."
+
+wiki4e_listFirefoxURLs :: IO [URL]
+wiki4e_listFirefoxURLs = do
+     xs <- listAllHistoryURLs
+     return $ nub $ filter isArticleURL xs
diff --git a/src/wiki4e-mkepub-subtree.hs b/src/wiki4e-mkepub-subtree.hs
--- a/src/wiki4e-mkepub-subtree.hs
+++ b/src/wiki4e-mkepub-subtree.hs
@@ -23,6 +23,7 @@
 usageHelp name = putStrLn $ "Usage: " ++ name ++ " <Start URL>"
 
 subtree2epub cs l = do
+  hSetBinaryMode stdout True
   let u = fromJust $ importURL cs
   config <- wiki4e_initConfig
   putStrLn $ "# INFO - download depth is hardcoded value = " ++ (show defaultDepth)
diff --git a/wikipedia4epub.cabal b/wikipedia4epub.cabal
--- a/wikipedia4epub.cabal
+++ b/wikipedia4epub.cabal
@@ -1,5 +1,5 @@
 Name:            wikipedia4epub
-Version:         0.0.7
+Version:         0.0.8
 License:         BSD3
 License-File:    LICENSE
 Homepage:        http://rampa.sk/static/wikipedia4epub.html
@@ -56,7 +56,14 @@
         Network.Wikipedia
         Web.Firefox
 
+Executable wiki4e-mkepub-firefox
+  Hs-Source-Dirs:  src
+  Main-Is:         wiki4e-mkepub-firefox.hs
+
 Executable wiki4e-mkepub-subtree
   Hs-Source-Dirs:  src
   Main-Is:         wiki4e-mkepub-subtree.hs
 
+Executable wiki4e-mkepub-cache
+  Hs-Source-Dirs:  src
+  Main-Is:         wiki4e-mkepub-cache.hs
