new calculation, cleanup