function finalize()
        external
        whenNotFinalized
    {
        if (msg.sender != ethFundDeposit) throw; 
        if (now <= endTime && totalSupply != tokenGenerationCap) throw;
        
        isFinalized = true;
        if(!ethFundDeposit.send(this.balance)) throw;  
    }