decouple iterate() and exec()
whitespace damage