re-introduce the weakref.ref. ref is still used in Behaviors