Almost done with lazy initialization
Merged