Added code to answer Q3; added caching to loaded address book