further refactoring of Parser