should probably add 'volatile' (I think there are other cases within this PR where final was removed and volatile could be added)