protected function createPackage($name, $version, $release = '')
    {
        $this->modx->loadClass('transport.xPDOTransport', XPDO_CORE_PATH, true, true);
        $this->modx->loadClass('transport.xPDOVehicle', XPDO_CORE_PATH, true, true);
        $this->modx->loadClass('transport.xPDOObjectVehicle', XPDO_CORE_PATH, true, true);

        /* setup the signature and filename */
        $s['name'] = strtolower($name);
        $s['version'] = $version;
        $s['release'] = $release;
        $signature = $s['name'];
        if (!empty($s['version']) || $s['version'] === '0') {
            $signature .= '-' . $s['version'];
        }
        if (!empty($s['release']) || $s['release'] === '0') {
            $signature .= '-' . $s['release'];
        }
        $filename = $signature . '.transport.zip';

        /* remove the package if it's already been made */
        $directory = TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR;
        if (file_exists($directory . $filename)) {
            unlink($directory . $filename);
        }
        if (file_exists($directory . $signature) && is_dir($directory . $signature)) {
            $this->modx->getCacheManager()->deleteTree($directory . $signature, array('deleteTop' => false, 'skipDirs' => false, 'extensions' => array()));
        }
        if (!file_exists($directory)) {
            $this->modx->getCacheManager()->writeTree($directory);
        }

        /* create the transport package */
        $this->package = new Transport($this->modx, $signature, $directory);
        $this->request->log("Created new transport package with signature: {$signature}");

        return $this->package;
    }