This is designed to allow behaviour to be decoupled from storage so that upgrades can be made without losing data.
The address (presumably a contract) which is permitted to use functions on this contract which have the
Initialises the associated contract and the owner, who has the exclusive right to switch the associated contract.
Allows the contract's owner to update the associated contract.
Reverts the transaction if the
msg.sender is not the associated contract. Provided for use by inheriting contracts.
The associated contract was updated by the owner. This event reports the new associated contract.