Implement Client NIO