public function mergeTo($path, $source, $raw = false, array $options = [])
    {
        $nodes = StructureHelper::getPathNodes($path);

        $data = [];

        $tmp =& $data;

        foreach ($nodes as $node) {
            $tmp[$node] = [];

            $tmp =& $tmp[$node];
        }

        if ($source instanceof self) {
            $source = $source->getRaw();
        }

        $tmp = $source;

        $this->bindData($this->data, $data, $raw, $options);

        return $this;
    }