Implementation of Lazy Initialization design pattern