function getStakeTokens(address _address, uint _year, uint _month) public view returns (uint256 _amount) {
        validateMonth(_year, _month);
        require(stakesLockups[_address] < now);
        
        _amount = 0;
        if(stakesLockups[_address] < now && totalStakes[_year][_month] > 0){
            uint256 _tmpStake = stakeTmpBalance[_year][_month][_address];
            
            if(_tmpStake > 0){
                uint256 _totalStakesBal = stakeBalance[_address];
                
                uint256 _totalStakes = totalStakes[_year][_month];
                uint256 _poolAmount = poolBalance[_year][_month];
                
                _amount = ((_tmpStake.mul(_poolAmount)).mul(50)).div(_totalStakes.mul(100));
                _amount = _amount.add(_totalStakesBal);
            }
        }
    }