obsoleteSave and obsoleteDelete