Make save_and_recall more generic