Refactoring and adding a new parser