added buffered socket (client/server abstraction)