you have to delay the initialization of nextCat. hasNext function has to do some smart handling.