avoid recalculating total and winner repeatedly