first pass attach NIO, untested