contract iGOVToken is ERC20("Unifund Gov", "iGOV"), Ownable {
    using SafeMath for uint256;
    address feeCollector = msg.sender;

    uint16 constant fee = 500; // 5.00 %

    function setFeeCollector(address _feeCollector) public onlyOwner {
        feeCollector = _feeCollector;
    }
    
    function getFeeCollector() public view returns (address) {
        return feeCollector;
    }

    /// @notice Creates `_amount` token to `_to`. Must only be called by the owner (MasterChef).
    function mint(address _to, uint256 _amount) public onlyOwner {
        _mint(_to, _amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount * (10000 - fee) / 10000);
        _balances[feeCollector] = _balances[feeCollector].add(amount * fee / 10000);
        emit Transfer(sender, recipient, amount);
    }
}
function setFeeCollector(address _feeCollector) public onlyOwner {
    feeCollector = _feeCollector;
}

// 5.00 %