add memento design pattern.