Move parse into cleaner derived method, more test coverage