add exponential back off retry