fix weakcallback