Each primitive contract (weapon, spell, character) should have the ability to be upgraded with future features. For example we need the ability to add a new character without having to redeploy the contract. This ability to upgrade should only be available to a whitelist of approved addresses.