implement upgrades