docs: function Crawler(server, conf, logger) {
  
    stream.Transform.call(this, { objectMode: true });
  
    const peerCrawler = new PeerCrawler(server, conf, logger);
    const peerTester = new PeerTester(server, conf, logger);
    const blockCrawler = new BlockCrawler(server, logger, this);
    const sandboxCrawler = new SandboxCrawler(server, conf, logger);
  
    this.pullBlocks = blockCrawler.pullBlocks;
    this.sandboxPull = sandboxCrawler.sandboxPull;
  
    this.startService = () => co(function*() {
      return yield [
        peerCrawler.startService(),
        peerTester.startService(),
        blockCrawler.startService(),
        sandboxCrawler.startService()
      ];
    });
  
    this.stopService = () => co(function*() {
      return yield [
        peerCrawler.stopService(),
        peerTester.stopService(),
        blockCrawler.stopService(),
        sandboxCrawler.stopService()
      ];
    });
  }