Cupcake upgrades

[placeholder until merge-ready]
Maybe this could be calculated dynamically?