添加了代理和块方法