yeah, as a rule of thumb, if I can write a function in an iterative way, I do. But sometimes it's just not possible