 
 						return copyBuildProductIntoDirectory(folderURL, deviceSettings)
 							.map { productURL in
-								let mergeProductBinaries = URLToBuiltExecutable(simulatorSettings)
-									.concat(URLToBuiltExecutable(deviceSettings))
+								let mergeProductBinaries = ColdSignal.fromResult(simulatorSettings.executableURL)
+									.concat(ColdSignal.fromResult(deviceSettings.executableURL))
 									.reduce(initial: []) { $0 + [ $1 ] }
 									// TODO: This should be a zip.
-									.combineLatestWith(valueForBuildSetting("EXECUTABLE_PATH", deviceSettings).map(folderURL.URLByAppendingPathComponent))
+									.combineLatestWith(ColdSignal.fromResult(deviceSettings.executablePath)
+										.map(folderURL.URLByAppendingPathComponent))
 									.map { (executableURLs: [NSURL], outputURL: NSURL) -> ColdSignal<()> in
 										return mergeExecutables(executableURLs, outputURL)
 									}
 									.merge(identity)
 
-								let sourceModulesURL = pathToModulesFolder(simulatorSettings)
+								let sourceModulesURL = ColdSignal.fromResult(simulatorSettings.relativeModulesPath)
+									.filter { $0 != nil }
 									// TODO: This should be a zip.
-									.combineLatestWith(URLToBuildProductsDirectory(simulatorSettings))
+									.combineLatestWith(ColdSignal.fromResult(simulatorSettings.builtProductsDirectoryURL))
 									.map { (modulesPath, productsURL) -> NSURL in
-										return productsURL.URLByAppendingPathComponent(modulesPath)
+										return productsURL.URLByAppendingPathComponent(modulesPath!)
 									}
 
-								let destinationModulesURL = pathToModulesFolder(deviceSettings)
+								let destinationModulesURL = ColdSignal.fromResult(deviceSettings.relativeModulesPath)
+									.filter { $0 != nil }
 									.map { modulesPath -> NSURL in
-										return folderURL.URLByAppendingPathComponent(modulesPath)
+										return folderURL.URLByAppendingPathComponent(modulesPath!)
 									}
 
 								let mergeProductModules = sourceModulesURL

		buildScheme.workingDirectoryPath = workingDirectoryURL.path!

		return launchTask(buildScheme, standardOutput: stdoutSink)
			.then(buildSettings(copiedArgs))
	}

	let buildSignal: ColdSignal<NSURL> = platformForScheme(scheme, inProject: project)
		.map { (platform: Platform) in
			switch platform {
			case .iPhoneSimulator: fallthrough

private func shouldBuildScheme(buildArguments: BuildArguments) -> ColdSignal<Bool> {
	precondition(buildArguments.scheme != nil)

	return BuildSettings.loadWithArguments(buildArguments)
		.tryMap { settings in settings.productType }
		.map { type in
			switch type {
			case let .Framework:
