add ability to cache menus. setup models for NSCoding compliance.