client side kind of work