preference validation functions