Refactored carousel layouts into seperate classes by introducing the Layout and CellIterator concepts