server now keeps track of client state