ERC20 Standard Contract - _msgSender()?

I noticed the newest version (solidity ^0.8.0) of Open Zep's ERC20.sol standard contract has msg.sender written as _msgSender(); This is the first time i have seen it written this way. It is also giving me problems in Remix saying it is an "undeclared identifier". It is in several of the functions including _transfer below. Can anyone explain what might be going on and why i am getting in the error in Remix? Also, is this new syntax.... changed from msg.sender to _msgSender()?

 function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

Hi CryptoJoe, I don't know how I can change msg.sender with Remix, but if you deploy the contract with Truffle it runs ok.

Okay thank you. Good to know truffle works with this. For anyone reading this, the solution was simple, i just changed the msgSender() to msg.sender and everything compiled. Maybe Remix has some catching up to do with this syntax or maybe its something else but the good ole fashion msg.sender compiled.