renamed some iteraters to make it clearer