a client side thing kind of works