public function sequence($name, $start = null, $callback = null)
    {
        if (is_callable($start)) {
            $callback = $start;
            $start = null;
        }
        if (!array_key_exists($name, $this->sequences)) {
            if ($start === null) {
                $start = $this->config->sequence_start;
            }
            $this->sequences[$name] = new FabricateSequence($start);
        }
        $ret = $this->sequences[$name]->current();
        if (is_callable($callback)) {
            $ret = $callback($ret);
        }
        $this->sequences[$name]->next();
        return $ret;
    }