public function output($args)
    {
        $args += ['callback' => null];
        if (isset($args[0])) {
            $args['callback'] = $args[0];
        }
        if (!$args['callback'] || !is_callable($args['callback'])) {
            throw new RuntimeException('Callback option must be a callable.');
        }
        $this->init($args);

        $callback = $args['callback'];

        $this->_io->out('', 0);
        while ($this->_progress < $this->_total) {
            $callback($this);
            $this->draw();
        }
        $this->_io->out('');
    }