parsers refactoring