callbacks shouldn't be handling sockets