function howMany(uint256 _value) internal returns (uint256){

        
        var (price, canGet) =  currentPrice();
        uint256 toGet = _value.div(price);

        
        if (canGet == 0) {
            toGet = 0;
        } else if (toGet > canGet) {
            tokensLeft -= canGet;
            toGet = canGet + howMany(_value - (canGet*price));
        } else {
            tokensLeft -= toGet;
        }
        return toGet;
    }