add Memento Pattern