MultiIterator: approac with generics extended to other family of constructors