add base iterators to ease the definition of user provided iterators