 	
 	public init?(storeMetadata: [NSObject: AnyObject], destinationModel: NSManagedObjectModel, bundles: [NSBundle], inout error: NSError?) {
 		precondition(!bundles.isEmpty, "Bundles must be non-empty.")
+		let progress = NSProgress(totalUnitCount: -1)
 		if destinationModel.isConfiguration(nil, compatibleWithStoreMetadata: storeMetadata) {
 			super.init()
 			return

		var storeCopyError: NSError?
		for (stepIndex, step) in enumerate(steps) {
			let stepDestinationURL = storeReplacementDirectory.URLByAppendingPathComponent("Migrated Store (Step \(stepIndex + 1) of \(stepCount))", isDirectory: false)
			var stepError: NSError?
			if !step.executeForStoreAtURL(latestStoreURL, type: latestStoreType, destinationURL: stepDestinationURL, storeType: destinationStoreType, error: &stepError) {
				error = stepError
				NSFileManager.defaultManager().removeItemAtURL(storeReplacementDirectory, error: nil)
				return false
			}
			latestStoreURL = stepDestinationURL
			latestStoreType = destinationStoreType
			steppingProgress.completedUnitCount++
		}
		
		// Cleanup

			return true
		}
		// 10% setup, 80% actual migration steps, 10% cleanup.
		let overallProgress = NSProgress(totalUnitCount: 100)
		
		// Setup
		var storeReplacementDirectoryError: NSError?
