diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -26,15 +26,13 @@
 parseString :: [Char] -> Root
 ```
 
-Returns an AST (type is the root node).
+Returns an AST (type Root is the root node).
 
 Parse a file:
-
 ```
-parseFile :: FilePath -> IO Root
+parseFile :: FilePath -> IO PigFile
 ```
-
-Returns an AST (type = Root, which is the root node).
+PigFile contains the Root (of AST) and the file name.
 
 Pretty print the produced tree:
 ```
diff --git a/language-pig.cabal b/language-pig.cabal
--- a/language-pig.cabal
+++ b/language-pig.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                language-pig
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Pig parser in haskell.
 description:         Parser and pretty printer for the Apache Pig scripting language (http://pig.apache.org/). The current version is implemented using Parsec parser combinators.
 -- description:         
diff --git a/src/Language/Pig/Parser/AST.hs b/src/Language/Pig/Parser/AST.hs
--- a/src/Language/Pig/Parser/AST.hs
+++ b/src/Language/Pig/Parser/AST.hs
@@ -10,6 +10,8 @@
 -- http://wiki.apache.org/pig/PigLexer
 -- http://wiki.apache.org/pig/PigParser
 
+data PigFile = PigFile String Root
+
 data Root = Seq [Statement]
             DERIVE
 
diff --git a/src/Language/Pig/Parser/Parser.hs b/src/Language/Pig/Parser/Parser.hs
--- a/src/Language/Pig/Parser/Parser.hs
+++ b/src/Language/Pig/Parser/Parser.hs
@@ -68,8 +68,8 @@
     Left msg -> error (show msg)
     Right p -> p
 
-parseFile :: FilePath -> IO Root
-parseFile filename = parseString <$> readFile (filename)
+parseFile :: FilePath -> IO PigFile
+parseFile filename = ((PigFile filename) . parseString) <$> readFile (filename)
 
 parsePig :: String -> Either ParseError Root
 parsePig input = parse pigParser "pigParser error" input
diff --git a/src/Language/Pig/Pretty.hs b/src/Language/Pig/Pretty.hs
--- a/src/Language/Pig/Pretty.hs
+++ b/src/Language/Pig/Pretty.hs
@@ -10,6 +10,8 @@
 import Data.Tree
 import Data.Tree.Pretty
 
+import Control.Applicative ((<$>), (<*>))
+
 -- patterns:
 --  node name + list nodes
 --  node name + literal to display = terminalnode
@@ -113,4 +115,6 @@
   toTree c = Node (show c) []
 
 prettyPrint :: Root -> String
-prettyPrint ast = drawVerticalTree $ toTree ast
+prettyPrint (Seq []) = "no statements\n"
+prettyPrint (Seq statements) = "sequence of statements:\n" ++
+                                (intercalate "\n" (map drawVerticalTree $ map toTree statements))
