#3 - Implementing the trigger for tracking upgrades as part of the build.  Also adding method for isUpgradeValidForBuildOrder