Add some comments and a parser abstraction