client side form generation