// creates version config and uploads it (async)
        private void UploadVersionConfigs(DelegateTransfer callback)
        {
            var files = new List<TransferFile>();

            // check if version should be a full version
            if (ulFullVersion)
            {
                // create a new full version config and save it to temp folder
                var xmlFullVersion = new XmlFullVersion(ulFiles);
                xmlFullVersion.Save(localPath + fullVersionConfig);
                files.Add(new TransferFile(fullVersionConfig));
            }

            // create a new update config and save it to temp folder
            var xmlUpdate = new XmlUpdate(ulNewFiles, ulDeletedFiles);
            xmlUpdate.Save(localPath + updateConfig);
            files.Add(new TransferFile(updateConfig));

            Uri address = new Uri(remotePath + ulVersion + "/");

            // try to upload configs async
            fileTransfer.UploadFilesAsync(files, false, address, localPath,
                delegate(FileTransferResult result)
                {
                    callback(result == FileTransferResult.Success);
                });
        }