recalculate after collection modification