with a form on client side