updated server and client