support desktop save and session save