Modern ERC721 Usage: Minting, Votes, Governance & Royalties

Hey Guys,

Just have some high level questions since I'm very new to Solidity;

I'm trying to build an ERC-721 token with voting privileges and can receive royalties on resales.

Where: [NFTMintToken.sol](https://wizard.openzeppelin.com/#erc721) is the contract that mints the NFTs.

  1. Does [draft-ERC721Votes.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts//token/ERC721/extensions/draft-ERC721Votes.sol) replace the need to use ERC721Checkpointable.sol from the Nouns DAO project?

  2. How do I use draft-ERC721Votes.sol and ERC721Royalty.sol? Do I just import them into my ERC-721 minting contract, NFTMintToken.sol?

  3. [TimeLock.sol](https://github.com/withtally/my-nft-dao-project/blob/main/contracts/Timelock.sol): is this required for my use case? If so, is it a separate file that I have to add to the /contracts folder and import into my NFTMintToken.sol?