It would be great to have access to the following things from the migration function as they are sometimes necessary to properly migrate:
this - to get canister ID
args - args that the canister was called with during the upgrade
caller - the caller of the upgrade
- access to system items to schedule timers / send cycles