Observer Pattern — Notifications.
Use Key-Value Observing Pattern.
Use memento pattern.