Major change to how messages are parsed.  I plan on refactoring things later so human beings can read this code.
Updated version [1.1.0]