still debugging/working on iterator
iterator tests pass