- made most parsers public, so that people can extend
- made parser matching more efficient
- cleanup equality mess