function distribute(uint256 _rID, uint256 _pID, uint256 _eth, uint256 _team, uint256 _keys, BMDatasets.EventReturns memory _eventData_)
    private
    returns (BMDatasets.EventReturns)
    {
        
        uint256 _com = _eth / 20;
        if (!address(Banker_Address).send(_com))
        {
            _com = 0;
        }

        
        uint256 _gen = (_eth.mul(fees_[_team].gen)) / 100;

        
        uint256 _air = (_eth / 20);
        airDropPot_ = airDropPot_.add(_air);

        
        uint256 _pot = _eth.sub(_com).sub(_air).sub(_gen);

        
        
        uint256 _dust = updateMasks(_rID, _pID, _gen, _keys);
        if (_dust > 0)
            _gen = _gen.sub(_dust);

        
        round_[_rID].pot = _pot.add(_dust).add(round_[_rID].pot);

        
        _eventData_.genAmount = _gen.add(_eventData_.genAmount);
        _eventData_.potAmount = _pot;

        return (_eventData_);
    }