we can safely use (fields).to_hash in Contract::Validate.
also, we can safely use fields in Form::Save.