getting a better feel for generators, iterators, and functonal programming