add parser
refactoring