cached averages, cut time in (less than) half