function() payable external {
        if(!funding) throw;
        if(block.timestamp < fundingStart) throw;
        if(block.timestamp > fundingEnd) throw;
        if(msg.value == 0) throw;
        if((msg.value  * getExchangeRate()) > (tokenCreationCap - totalTokens)) throw;
        var numTokens = msg.value * getExchangeRate();
        totalTokens += numTokens;
        
        if(getExchangeRate()!=30000){
            soldAfterPowerHour += numTokens;
        }
        balances[msg.sender] += numTokens;
        balancesEther[msg.sender] += msg.value;
        totalParticipants+=1;
        Transfer(0, msg.sender, numTokens);
    }