Using NIO instead of threads for asyncronous requests - Closes #3