refactor LoadWorldLight to async