fixed retain loop possibility in blocks