public function build($decorator)
    {
        return $this->map(function ($element) use ($decorator) {
            if ($element instanceof Group) {
                $element->map(function ($e) use ($decorator) {
                    return $decorator->makeElement($e);
                });

                return $element;
            }

            return $decorator->makeElement($element);
        });
    }