This (in theory) should work and be less costly because the calls are not every update().