Combining patterns: Observer