iterator: add a chain adaptor