add Memento Design Pattern