Design idea: "Iterates on data"
Iterator has next method to loop over a DataCollection. It returns a list of X and Y to use for an arbitry task. There could be multiple versions, e.g. a normal loop (for pre-/postprocessing) and a distributed loop (according to a batch size). The Iterator should meet all requiremnts to use in parallel for keras.
has methods next to return X and Yreturn class object (that has get_X and get_Y)
has an abstract classnot required
has inheritances that handle different kind of loops