 
 }
 
+// MARK:- CAAnimation Delegate
+
 extension CoachMarksView: CAAnimationDelegate {
     func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
         delegate?.coachMarksView(self, didNavigateTo: markIndex)

        fatalError("init(coder:) has not been implemented")
    }
    
    func setup() {
        // Shape layer mask
        shapeLayerMask.fillRule = kCAFillRuleEvenOdd
        shapeLayerMask.fillColor = UIColor(white: 0.0, alpha: 0.8).cgColor
        layer.addSublayer(shapeLayerMask)
        
        // Capture touches
        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(userDidTap(_:)))
        let swipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(userDidTap(_:)))
        swipeGestureRecognizer.direction = [.left, .right]

        
        // Create Bubble
        // Use POI if available, else use the cutout frame
        bubble = BubbleView(frame: poi ?? frame, text: markCaption!, arrowPosition: .top, color: nil, font: font)
        bubble!.font = font ?? bubble!.font
        bubble!.alpha = 0.0
        addSubview(bubble!)
