lazy updating for running averages (hopefully correct this time)