update with WeakReference

update with WeakReference