so we need to use a weak ref here, to handle the unload case..