wrap save/load state and UI update with appContext calls