a simpler alternative to sockets