simplified retry logic