public function next($is_string = false)
    {
        $package = '';
        while (true) {
            if ($this->pointer >= $this->length) {
                return false;
            }

            $string = $this->string[$this->pointer];
            $this->pointer++;

            if ($is_string === true) {
                return ord($string);
            }

            $value = decbin(ord($string));

            if ($value >= 10000000 && $is_string === false) {
                // now fill to eight with 00
                $package .= $value;
            } else {
                // now fill to length of eight with 0
                $value = substr('00000000', 0, 8 - strlen($value) % 8) . $value;
                return $this->base128->getValue($package . $value);
            }
        }
        return $package;
    }