public static IObservable<string> Search_DefferedConcatingTasks(string term)
{
var searchEngineA = new SearchEngineA();
var searchEngineB = new SearchEngineB();
var resultsA = Observable.Defer(() => searchEngineA.SearchAsync(term).ToObservable());
var resultsB = Observable.Defer(() => searchEngineB.SearchAsync(term).ToObservable());
return resultsA
.Concat(resultsB)
.SelectMany(x => x);
}