forms with validation and state