Implementation of External Iterator pattern