new ql module, pass iterator by value where we can