socket read is now non-blocking.  added event loop