throw exception if the client calls the next() method in the iterator
throw exceptions for edge cases
throw exception in iterator