 
 /* Load and validate configuration file
  */
-print("Reading configuration file...", terminator: "")
+print("Reading configuration file... ", terminator: ""); fflush(stdout)
 
 let configFileURL = NSURL.fileURLWithPath(Process.arguments[1])
 var configFileError : NSError?
 guard configFileURL.checkResourceIsReachableAndReturnError(&configFileError) else {
-	print(" failed\n", configFileError)
+	print("failed\n", configFileError)
 	exit(EXIT_FAILURE)
 }
 
 // Load plist into a configuration dictionary array
 guard let config = NSDictionary(contentsOfURL: configFileURL) else {
-	print(" failed", "\nError: Invalid configuration file format.")
+	print("failed", "\nError: Invalid configuration file format.")
 	exit(EXIT_FAILURE)
 }
 
 // Load stop time
 guard let configStopTime = config["stopTime"] as? Double else {
-	print("Error: Please provide a valid simulation stop time in the configuration.")
+	print("failed", "\nError: Please provide a valid simulation stop time in the configuration.")
 	exit(EXIT_FAILURE)
 }
 

	let buildMask = toolsConfig["buildObstructionMask"] as? Bool
	where buildMask == true
{
	print("Building obstruction mask...", terminator: "")
	do {
		try buildObstructionMask(fromTrips: fcdTrips)
	} catch {
		print(" failed", "\nError:", error)
		exit(EXIT_FAILURE)
	}
	print(" okay")
	print("\tBuilt a map of obstructions from \(fcdTrips.count) steps.")
	exit(EXIT_SUCCESS)
}

/* Initialize PostgreSQL connection
 */
print("Initializing GIS connection...", terminator: "")

guard	let gisConfig = config["gis"],
		let gisHost = gisConfig["host"] as? String,

simCity.innerBounds = cityInnerBounds

// Clear all points from the database
print("Clearing old features from GIS... ", terminator: ""); fflush(stdout)
simCity.gis.clearFeatures(withType: .Vehicle)
simCity.gis.clearFeatures(withType: .RoadsideUnit)
simCity.gis.clearFeatures(withType: .ParkedCar)
print("okay")

// Add statistics collection events to the eventlist
print("Scheduling collection events... ", terminator: ""); fflush(stdout)
simCity.stats.scheduleCollectionEvents(onCity: simCity)
print("okay")

// Add mobility timestep events to the eventlist
print("Scheduling mobility events... ", terminator: ""); fflush(stdout)
simCity.events.scheduleMobilityEvents(fromFCD: &fcdTrips, city: simCity)
print("okay")


/*** EVENT LOOP ***/

// Initial stage events
print("Running initial events... ", terminator: ""); fflush(stdout)
for event in simCity.events.initial {
	event.action()
	if debug.contains("main().events"){
		print("[initial] main():\t".cyan(), "Executing", event.type, "event\t", event.description.darkGray())
	}
}
print("okay")

// Main simulation events
print("Running simulation events... ", terminator: ""); fflush(stdout)
repeat {
	guard let nextEvent = simCity.events.list.first else {
		print("Exhausted event list at time", simCity.events.now.milli)
