final public function setSeparator($separator)
    {
        if (!is_string($separator)) {
            throw new InvalidArgumentException(
                'Separator must be a string'
            );
        }

        if (strlen($separator) > 1) {
            throw new InvalidArgumentException(
                'Separator must be one-character, or empty'
            );
        }

        $this->separator = $separator;
        return $this;
    }