memento flyweight mediator