updated client and server