Observer pattern and strategy pattern together? - C#