Added Memento pattern