why do we not set initialized=true at the end of the method? what if an exception occurs during initialization? i guess if the user then accidentally tries to use the collection again, he should get the exception again, rather than hiding.