public override IObservable <CrawlResult> Crawl(CrawlResult result) { return(Observable.If(() => Extractor.CanExtract(result), Extractor.Extract(result).ToObservable() .Do(x => Console.WriteLine("Crawling: " + x)) .SelectMany(uri => base.Crawl(new CrawlResult(uri, null))))); }