added ICanUpgrade