introduced iterator joiner