clearer retry logic