Rewrote the parsing code.