rewrote all the parsers to fix a few bugs