Using IObservable when appropriate