add WeakAction and WeakFunc