Clarification of OpenZeppelin Governor contract is required

Hey everybody, I need community support.
I am dealing with Governor contract (I get one from OZ Wizard), and I would like to check my overall understanding I got after reading code.

  1. I need to implement two contracts - Governance Token and Governor. Is that correct?
  2. Governor requires that I override these two funcs:
  function _getVotes(
        address account,
        uint256 blockNumber,
        bytes memory params
    ) internal view virtual returns (uint256);
    function _countVote(
        uint256 proposalId,
        address account,
        uint8 support,
        uint256 weight,
        bytes memory params
    ) internal virtual;

Is that also correct?
Please advise.

Yes you need a governance token with Votes, and a Governor instance.

Please see the documentation for Governor for a list of functions to override: https://docs.openzeppelin.com/contracts/4.x/api/governance#Governor