updated client side functions