refactor to use GrabError exception