Observer / Oservable pattern creation