changes for double checked locking for the lazy initialized values