public function wrapWith($element, $name = null)
{
if (!$element instanceof Tag) {
$element = Element::create($element);
}
if ($this->parent) {
$this->parent->nest($element, $name);
$children = $this->parent->children;
unset($children[$this->parentIndex]);
$this->parent->children = $children;
$name = $this->parentIndex;
}
$element->nest($this, $name);
return $this;
}