Refactor Upgrade => Condition[Level], ...