changes to client side and server