queue iterator