don't recalc all board values in each sub functions