protected function internalCreateTag($single = true, $name, $column1 = null, $column2 = null, $_ = null)
    {
        // Create constructor arguments
        $arguments = func_get_args();
        $single    = array_shift($arguments);

        array_unshift($arguments, $this->maxColumnLengths);

        // Remove null values
        foreach ($arguments as $index => $argument) {
            if ($argument === null) {
                unset($arguments[$index]);
            }
        }

        $arguments = array_values($arguments);
        $tag       = $this->tagPrototype->newInstanceArgs($arguments);

        // Create new tag
        if ($single === true) {
            $this->tags->offsetSet($arguments[1], $tag);
        } else {
            $this->tags->append($tag);
        }

        return $this;
    }