How is the mapping of storage done in upgradeable contracts?