Cleanly broke out the parser, pretty printer, words out into its own modules