demo now uses local storage