Reworked the parsing.

Move the parsing into its own module, and split up each item into a
separate method.