we can't afford to fail, be recursive