working on ast parser