Adds iterator base class and unit tests