add fault tolerance, new request timeout feature