added lazy-loading capability