public IObservable <ITransition> Enter() { return(Observable.Create <ITransition>( observer => { var aggregateRoot = _aggregateRoot.SubscribeToDataProvider(() => _dataProvider.Activate()); return Observable .Return(new Transition.ToRunning(aggregateRoot)) .Subscribe(observer); })); ; }