add retry and client test