modify server and client