updated blocking queue, iterator