public function append($headers): self
    {
        if (is_string($headers)) {
            $append = self::parse($headers);
        } elseif (is_array($headers)) {
            $append = $headers;
        } elseif ($headers instanceof self) {
            $append = $headers->headers;
        } else {
            throw new \InvalidArgumentException(
                    'Given headers must be a string, a list of headers'
                    . ' or another instance of ' . __CLASS__
            );
        }

        $this->headers = array_merge($this->headers, $append);
        return $this;
    }