refactor the parser into a separate class
6 files changed