add exponential backoff