7/21/14: re-writing the parser using strict TDD