function receiveETH(address beneficiary) internal {
        if (msg.value < MIN_INVEST_ETHER) throw; 
        uint coinToSend = bonus(msg.value.mul(COIN_PER_ETHER).div(1 ether)); 
        if (coinToSend.add(coinSentToEther) > MAX_CAP) throw;    
        Backer backer = backers[beneficiary];
        coin.transfer(beneficiary, coinToSend); 
		if (!multisigEther.send(this.balance)) throw; 
        backer.coinSent = backer.coinSent.add(coinToSend);
        backer.weiReceived = backer.weiReceived.add(msg.value); 
        etherReceived = etherReceived.add(msg.value); 
        coinSentToEther = coinSentToEther.add(coinToSend);
        
        LogCoinsEmited(msg.sender ,coinToSend);
        LogReceivedETH(beneficiary, etherReceived); 
    }