implementing Ref (like dagger lazy)