Much cleaner iteration