support custom validation rules