This is potentially uninitialized attribute -- which is not nice and dangerous. I propose changing the visibility to private and allow access only through getter (with the possibility of lazy caching)