 simCity.innerBounds = cityInnerBounds
 
 // Clear all points from the database
-print("Clearing old features from GIS...", terminator: "")
+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")
+print("okay")
 
 // Add statistics collection events to the eventlist
-print("Scheduling collection events...", terminator: "")
+print("Scheduling collection events... ", terminator: ""); fflush(stdout)
 simCity.stats.scheduleCollectionEvents(onCity: simCity)
-print(" okay")
+print("okay")
 
 // Add mobility timestep events to the eventlist
-print("Scheduling mobility events...", terminator: "")
+print("Scheduling mobility events... ", terminator: ""); fflush(stdout)
 simCity.events.scheduleMobilityEvents(fromFCD: &fcdTrips, city: simCity)
-print(" okay")
+print("okay")
 
 
 /*** EVENT LOOP ***/
 
 // Initial stage events
-print("Running initial events...", terminator: "")
+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")
+print("okay")
 
 // Main simulation events
-print("Running simulation events...", terminator: "")
+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)


/* Load and validate configuration file
 */
print("Reading configuration file...", terminator: "")

let configFileURL = NSURL.fileURLWithPath(Process.arguments[1])
var configFileError : NSError?
guard configFileURL.checkResourceIsReachableAndReturnError(&configFileError) else {
	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.")
	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.")
	exit(EXIT_FAILURE)
}


	let buildMask = toolsConfig["buildObstructionMask"] as? Bool
	where buildMask == true
{
	print("Building obstruction mask... ", terminator: ""); fflush(stdout)
	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: ""); fflush(stdout)

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