refactor parsers