Reworked EventParserState to use a custom datatype