abstracted applying validation rules