client side work