change uage of weakreference;