using `any` / `every` would allow early loop break