user creation with client side and model validation