public function call(string $method, ...$vars) : self
    {
        $clone = clone $this;
        $clone->elements = array_map(function ($element) use ($method, $vars) {
            return call_user_func_array([$element, $method], $vars);
        }, $this->elements);

        return $clone;
    }