The class that actually performs the upgrade should execute in the core class so that it is testable.