new events and new NIO, staging for replacement