Switched internal tracking to use WeakReference<T>