final parsers refactor