preference-driven model