add constraints for preference