function overthrow(string challengeData) returns (bool success){
        
        
        var challengeHash = sha3(challengeData);

        
        if(checkDate())
            return false;
        
        
        if(challengeHash == leaderHash)
            return false;

        
        if((challengeHash ^ leaderHash) > difficulty)
          return false;

        
        
        difficulty = (challengeHash ^ leaderHash);
        
        
        challengeWorldRecord(difficulty);
        
        
        leader = msg.sender;
        
        
        leaderHash = challengeHash;
        
        
        Leader("New leader! This is their address, and the new hash to collide.", leader, leaderHash);
        
        
        winners[msg.sender]++;
        
        
        fallenLeaders++;
        
        return true;
  }