    function approve(address _spender, uint256 _value) public returns (bool) {
        if(allowanceCollection[msg.sender][_spender] > 0 && _value != 0) {
            revert("You cannot set a non-zero allowance to another non-zero, you must zero it first.");
        }
        allowanceCollection[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }