function releaseGrant(address _token, address _granter, bool _doWithdraw) 
        external
    {
        
        sendTokenReleasedToBalanceInternal(_token, _granter, msg.sender);

        if(_doWithdraw) {
            withdraw(_token);           
        }

        
        Grant storage _grant = grantPerTokenGranterVester[_token][_granter][msg.sender];
        if(_grant.vestedAmount == _grant.withdrawnAmount) 
        {
            delete grantPerTokenGranterVester[_token][_granter][msg.sender];
        }
    }