function buyPreSaleTokens(address beneficiary) internal returns(bool) {
       
        if (msg.value < minAmount) {
          revert();
        } else {
            fundTransfer(msg.value);
            uint256 amount = getTokensForPreSale(exchangeRate, msg.value);

            if (token.transfer(beneficiary, amount)) {
                token.changeTotalSupply(amount);
                totalWeiRaised = totalWeiRaised.add(msg.value);
                TokenPurchase(beneficiary, msg.value, amount);
                return true;
            }
            return false;
        }
    }