Example of observer pattern in c#