working on AST parser