Adopt block-based enumeration where appropriate

In my opinion makes the logic easier to read/understand