Hmm. Not sure tbh, I would like to hear other peoples opinions :) I usually try and keep the role of the constructor to just assigining values, and I have had problems in the past where logic in the constructors gets executed "too early". So in general now I always code lazily, and in **that** case we would call `getIdentifier` and the validation logic would be invoked then. But this code is probably fine imo, and totally refactoreable if for some reason it isn't ideal.