First go at the parser... I think it works!