add tests, improve msg for parse errors