add retry fault-tolerant fn