static function shard($collector = null) {
      if (func_num_args()) {
        if ($collector) {
          static::$_shards[static::class] = $collector;
        } else {
          unset(static::$_shards[static::class]);
        }
        return;
      }
      if (!isset(static::$_shards[static::class])) {
        static::$_shards[static::class] = new Map();
      }
      return static::$_shards[static::class];
    }