implemented a preferences allocation mechanism.