    function safeApprove(address spender, uint256 value, uint256 oldValue) public returns (bool) {
        require(spender != address(0x0), "Cannot approve null address.");
        require(oldValue == allowanceCollection[msg.sender][spender], "The expected old value did not match current allowance.");
        allowanceCollection[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }