implement lazy loading in model