implement preference validator
update for preference validator