these can be final too, I think