diff --git a/lib/Application/XournalConvert/Command.hs b/lib/Application/XournalConvert/Command.hs
--- a/lib/Application/XournalConvert/Command.hs
+++ b/lib/Application/XournalConvert/Command.hs
@@ -4,9 +4,9 @@
 import Application.XournalConvert.Job
 
 commandLineProcess :: Xournal_convert -> IO ()
-commandLineProcess Test = do 
-  putStrLn "test called"
-  startJob
+-- commandLineProcess Test = do 
+--   putStrLn "test called"
+--   startJob
 commandLineProcess (MakeSVG fname mdest) = do 
   putStrLn "makeSVG is called"
   startMakeSVG fname mdest
diff --git a/lib/Application/XournalConvert/Convert/MakeSVG.hs b/lib/Application/XournalConvert/Convert/MakeSVG.hs
new file mode 100644
--- /dev/null
+++ b/lib/Application/XournalConvert/Convert/MakeSVG.hs
@@ -0,0 +1,72 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+
+module Application.XournalConvert.Convert.MakeSVG where
+
+import Data.List 
+import Graphics.Xournal.Render.Simple
+import Graphics.Rendering.Cairo
+
+import Data.Xournal.Simple
+import Text.Xournal.Parse
+
+import Text.StringTemplate
+
+import System.Directory 
+import System.FilePath
+import System.IO
+import qualified Data.ByteString.Lazy as B
+
+import Paths_xournal_convert
+
+makeSVGFromXournal :: Xournal -> FilePath -> FilePath 
+                   -> IO [String] 
+makeSVGFromXournal xojcontent fname dest = do 
+  let fnamebase = takeBaseName fname 
+  let pages = xoj_pages xojcontent
+      names = map (svgFileName fnamebase) [1..]
+      namePages = zip names pages 
+  let Dim w h = page_dim (head pages)
+  let svgoutfn x = withSVGSurface (dest </> fst x) w h (\s -> renderWith s (cairoDrawPage (snd x)))
+
+  mapM_ svgoutfn namePages
+  makeHtmlJavascriptPage (dest </> "index.html") $ zip [1..] (map fst namePages)
+  return (map fst namePages )
+
+
+
+render1 :: [(String,String)] -> String -> String
+render1 attribs tmpl = render . setManyAttrib attribs . newSTMP $ tmpl
+
+svgFileName :: String -> Int -> String 
+svgFileName fname_wo_ext pnum =
+  fname_wo_ext ++ "_Page_" ++ show pnum <.> "svg"
+
+checkIfBinary :: FilePath -> IO Bool 
+checkIfBinary fname = 
+  withFile fname ReadMode $ \h -> do
+    b <- return . B.any ( == 0 ) .  B.take 100 =<< B.hGetContents h 
+    b `seq` return b 
+   
+ifThenElse :: Bool -> a -> a -> a 
+ifThenElse b tact fact = if b then tact else fact 
+
+onePageTemplate :: String 
+onePageTemplate = "<p><div class=\"page\"> <a name=\"$page$\"> <img src=\"$filename$\" width=100% /> </a> </div> </p>\n\n"
+
+onerule :: String 
+onerule = "<hr /> \n"
+
+makeHtmlJavascriptPage :: FilePath -> [(Int,String)] -> IO ()
+makeHtmlJavascriptPage fname names = do
+  putStrLn $ "writing  " ++ fname
+  putStrLn $ show names 
+  templateDir <- getDataDir >>= return . (</> "template")
+  indexhtmlst <- readFile (templateDir </> "index.html.st")
+  let mkstr :: (Int,String) -> String 
+      mkstr (p,n) = flip render1 onePageTemplate [ ("filename", "." </> n) 
+                                                 , ("page", show p) ]
+      bodystr = intercalate onerule . map mkstr $ names
+  let str = flip render1 indexhtmlst [ ("body", bodystr) ] 
+  withFile fname WriteMode $ \h -> do 
+    hPutStr h str
+    
diff --git a/lib/Application/XournalConvert/Job.hs b/lib/Application/XournalConvert/Job.hs
--- a/lib/Application/XournalConvert/Job.hs
+++ b/lib/Application/XournalConvert/Job.hs
@@ -2,73 +2,26 @@
 
 module Application.XournalConvert.Job where
 
-import Data.List 
-import Graphics.Xournal.Render.Simple
-import Graphics.Rendering.Cairo
-
-import Data.Xournal.Simple
-import Text.Xournal.Parse
-
-import Text.StringTemplate
-
 import System.Directory 
-import System.FilePath
-import System.IO
-
-import Paths_xournal_convert
-
-render1 :: [(String,String)] -> String -> String
-render1 attribs tmpl = render . setManyAttrib attribs . newSTMP $ tmpl
-
-svgFileName :: String -> Int -> String 
-svgFileName fname_wo_ext pnum =
-  fname_wo_ext ++ "_Page_" ++ show pnum <.> "svg"
-
-
-startJob :: IO () 
-startJob = do 
-  putStrLn "job started"
-
-
+import Data.Xournal.Simple
+-- import Text.Xournal.Parse
+import Text.Xournal.Parse.Enumerator 
+import Application.XournalConvert.Convert.MakeSVG
 
+-- | 
 
 startMakeSVG :: FilePath -> Maybe FilePath -> IO () 
 startMakeSVG fname mdest = do 
-  xojcontent <- read_xournal fname 
-  cdir <- getCurrentDirectory 
-  let dest = maybe cdir id mdest 
+  exojcontent <- parseXournal fname 
+  case exojcontent of 
+    Left err -> putStrLn $ "parsing error : " ++ err 
+    Right xojcontent -> do 
+      cdir <- getCurrentDirectory 
+      let dest = maybe cdir id mdest 
+      makeSVGFromXournal xojcontent fname dest 
+      return ()
 
-  -- setCurrentDirectory dest 
-  let --  (fname_wo_ext,_fname_ext) = splitExtension fname 
-      fnamebase = takeBaseName fname 
 
-  let pages = xoj_pages xojcontent
-      names = map (svgFileName fnamebase) [1..]
-      namePages = zip names pages 
-  let Dim w h = page_dim (head pages)
-  let svgoutfn x = withSVGSurface (dest </> fst x) w h (\s -> renderWith s (cairoDrawPage (snd x)))
-
-  mapM_ svgoutfn namePages
-  makeHtmlJavascriptPage (dest </> "index.html") $ zip [1..] (map fst namePages)
-  putStrLn "test ended"
-
-onePageTemplate :: String 
-onePageTemplate = "<p><div class=\"page\"> <a name=\"$page$\"> <img src=\"$filename$\" width=100% /> </a> </div> </p>\n\n"
-
-onerule :: String 
-onerule = "<hr /> \n"
+  -- xojcontent <- checkIfBinary fname >>= \b -> 
+  --                 ifThenElse b (read_xojgz fname) (read_xournal fname)
 
-makeHtmlJavascriptPage :: FilePath -> [(Int,String)] -> IO ()
-makeHtmlJavascriptPage fname names = do
-  putStrLn $ "writing  " ++ fname
-  putStrLn $ show names 
-  templateDir <- getDataDir >>= return . (</> "template")
-  indexhtmlst <- readFile (templateDir </> "index.html.st")
-  let mkstr :: (Int,String) -> String 
-      mkstr (p,n) = flip render1 onePageTemplate [ ("filename", "." </> n) 
-                                                 , ("page", show p) ]
-      bodystr = intercalate onerule . map mkstr $ names
-  let str = flip render1 indexhtmlst [ ("body", bodystr) ] 
-  withFile fname WriteMode $ \h -> do 
-    hPutStr h str
-    
diff --git a/xournal-convert.cabal b/xournal-convert.cabal
--- a/xournal-convert.cabal
+++ b/xournal-convert.cabal
@@ -1,5 +1,5 @@
 Name:		xournal-convert
-Version:	0.1.0
+Version:	0.1.1
 Synopsis:	convert utility for xoj files
 Description: 	convert xoj files into various formats (SVG,SVG+index.html..) 
 Homepage:       http://ianwookim.org/hxournal
@@ -39,15 +39,17 @@
                    filepath == 1.2.*,
                    cmdargs >= 0.7 && < 0.10, 
                    HStringTemplate == 0.6.*,
-                   xournal-types == 0.2.*,
-                   xournal-parser == 0.3.*, 
-                   xournal-render == 0.4.*, 
-                   cairo == 0.12.*
+                   xournal-types == 0.4.*,
+                   xournal-parser >= 0.4.1 && < 0.5, 
+                   xournal-render == 0.6.*, 
+                   cairo == 0.12.*, 
+                   bytestring == 0.9.*
 
   Exposed-Modules: 
                    Application.XournalConvert.ProgType
                    Application.XournalConvert.Job
                    Application.XournalConvert.Command
+                   Application.XournalConvert.Convert.MakeSVG
   Other-Modules: 
                    Paths_xournal_convert
  
