changed from using netty to using a threaded networking model