why not use Lazy<>?