Rewrote the parser to better match the assignment