`iterate` functionality

No tests yet, please review the implementation
Ok I'll look into that later these days