reworking some of the terminology of parsing primitives
rename read() to parse()