added a preferences cache