private void performUpgradeRequest(UpgradeRequest request) {		
		for (Unit unit : self.getUnits()) {
			if (unit.getType() == request.building) {
				// If we don't have enough resources, wait
				if (self.minerals() > request.upgrade.mineralPrice() && self.gas() > request.upgrade.gasPrice()) {
					// We have the building that can perform the research, so do it
					unit.upgrade(request.upgrade);
					//System.out.println("Performing Upgrade: " + request.upgrade.toString());
				}
				return;
			}
		}
		
		// We didnt find the building, so submit a buildRequest for it
		BuildRequest buildRequest = new BuildRequest(request.building);
		buildRequest.withUnitOutput(upgradeBuildings);
		control.submitRequest(buildRequest);
		System.out.println("Requested Building: " + request.building.toString());
	}