Changed hasNext() to private and added throws exceptions to methods that
did. Also changed Javadoc to reflect some changes that has been made