make it DRYer, allow shorter preference declarations