improve several classes
add delegation base for Iterable; reimplement CycleIterator with Iterable instead of Collection