refactor parser
update