     
     // MARK: KSICCoordinator conformation
     public func showCarousel(inside container: UIView, of parentViewController: UIViewController) {
-        _carousel = KSICScrollerViewController(withViewModel: carouselViewModel, placeholderImage: placeholderImage, delegate: self)
-        add(_carousel!, to: container, of: parentViewController)
+        carousel = KSICScrollerViewController(withViewModel: carouselViewModel, placeholderImage: placeholderImage, delegate: self)
+        add(carousel!, to: container, of: parentViewController)
     }
     
     public func scrollToNextPage() {

            throw CoordinatorError.pageOutOfRange
        }
        
        _currentPage = p
    }
    
    /// +1 to page number - calling this will update currentPage -> update caoursel.viewModel -> update images in carousel -> scroll carousel to desire subview

public class KSICFiniteCoordinator: KSICCoordinator {
    
    public var delegate: KSICCoordinatorDelegate?
    public let model: [KSImageCarouselDisplayable]
    public let placeholderImage: UIImage?
    public var shouldShowActivityIndicator = true
    public var activityIndicatorStyle: UIActivityIndicatorViewStyle = .gray
    public private(set) var carousel: KSICScrollerViewController?

    public private(set) var currentPage: Int {
        didSet {
            // Note: Everytime current page being set, we will update carousel's viewModel (which will update images in carousel) and scroll carousel to subview that user should see
            
            // Update view model of carousel
            carousel?.viewModel = carouselViewModel
            
            // Scroll carousel (without animation) to subview that user should see
            swapCarouselSubview()
        }
    }
    
    public var carouselViewModel: [KSImageCarouselDisplayable] {
