At the moment each parser has to have a whole load of methods relating to modes. Instead, a Parser should return some object which can itself supply the information about modes. This will tidy up parser implementation somewhat, and make the API cleaner.