add nio client constructor to control concurrency