refactored lazyload, kinda