fix retain cycle in block