Tidy up a bit and add Parser