function internalCalculateEthersWithBonus(uint256 _amount) internal view returns (uint256) {
        uint256 etherAmount = _amount;
        uint256 amountInUSD = _amount.mul(etherPriceInUSD);
        for (uint8 i = 0; i < bonuses.length; i++) {
            Bonus storage bonus = bonuses[i];
            if (bonus.minAmount <= amountInUSD && (bonus.maxAmount == 0 || bonus.maxAmount >= amountInUSD)) {
                etherAmount = _amount.add(_amount.mul(bonus.bonus).div(100));
                break;
            }

        }

        return etherAmount;
    }