Lazy<T> refactor