changed to block-based enumeration