refactoring
new tests, iterator test are failing