any reason not to use iterators here ?