public function add(string $name, ?string $key, $value): self
    {
        if (!isset($this->_data[$name])) {
            $this->_data[$name] = [];
        }

        if ($key === null) {
            $key = count($this->_data[$name]);
        }

        $this->_data[$name][$key] = $value;

        return $this;
    }