In an ERC-721 contract, which function should use _safeMint instead of _mint when the recipient may be a contract?