break parser into modules