nonblocking client