wip on general case iterators and better tests

it is WIP!!!!! don't use it. Test it!