add override to hasNext and next