function buyTokens(address _addr) public payable {
		require(msg.value >= 0.001 ether);
		require(distributions[0] > 0);
		require(totalBuyTokens_ <= INITIAL_SUPPLY );
		require(getCurrentRound() > 0);
		
		uint discountPercent = getCurrentDiscountPercent();
		
		uint256 weiAmount = msg.value;
        uint256 tokens = getRate(weiAmount);
		uint256 bonusTokens = tokens.mul(discountPercent).div(100);
		tokens += bonusTokens;
		totalBuyTokens_ = totalBuyTokens_.add(tokens);

	    token.transfer(_addr, tokens);
		totalSupply_ = totalSupply_.sub(tokens);
		distributions[0] = distributions[0].sub(tokens);
		
	    owner.transfer(msg.value);
		
		emit TokenPurchase(msg.sender, _addr, weiAmount, tokens);
    }