Renew NDIterator class to be more readable and user-friendly, I hope