ah - it looks like check just returns a map and validate actually wraps it up as an exception - I want to return an exception to parse, so I'd be duplicating everything in `validate` except the `throw` so I think I'll stick with this unless try..catch turns out to be way less performant