public function directory($path, callable $callable = null)
    {
        $directory_path = $this->makePath($path);

        $this->outbox->createDir($directory_path);

        $context = clone($this->context);
        $context->directory = $directory_path;

        $sub = new static($this->outbox, $this->stubbox, $context);

        if ($callable) {
            call_user_func($callable, $sub);
        }

        return $sub;
    }