     
     var popkit: PopKit {
         return PopKitBuilder() {
-            $0.constraints = [.center(x: 0, y: 0), .width(300), .height(300)] // .edges(left: 0, right: 50, top: 0, bottom: 0) .center(x: 0, y: 0), .width(200), .height(200)
-            $0.inAnimation = .bounceInBottom(damping: 0.86, velocity: 2)
+            $0.constraints = [.edges(left: 0, right: 0, top: 0, bottom: nil), .height(75)] // .edges(left: 0, right: 50, top: 0, bottom: 0) .center(x: 0, y: 0), .width(200), .height(200) //.center(x: 0, y: 0), .width(300), .height(300)
+            $0.inAnimation = .slideTop // .bounceInTop(damping: 0.86, velocity: 2)
+            $0.outAnimation = .slideRight
             $0.backgroundEffect = .blurDark // .transparentOverlay(0.4)
             $0.popupView = testView
         }

enum PopKitAnimation {
    case zoomIn(Float)
    case zoomOut(Float)
    case slideInTop
    case slideInLeft
    case slideInRight
    case slideInBottom
    case bounceInTop(damping: Float, velocity: Float)
    case bounceInLeft(damping: Float, velocity: Float)
    case bounceInRight(damping: Float, velocity: Float)
    case bounceInBottom(damping: Float, velocity: Float)
}

enum PopKitBackgroundEffect {

        case .zoomOut(let scale):
            controller.presentedViewController.view.transform = CGAffineTransform(scaleX: CGFloat(scale), y: CGFloat(scale))
            animateSlideAndScale(transitionContext, controller, initialFrame, finalFrame)
        case .bounceTop(let damping, let velocity):
            initialFrame.origin.y = -presentedFrame.size.height
            animateBounce(damping, velocity, transitionContext, controller, initialFrame, finalFrame)
        case .bounceLeft(let damping, let velocity):
            initialFrame.origin.x = -presentedFrame.size.width
            animateBounce(damping, velocity, transitionContext, controller, initialFrame, finalFrame)
        case .bounceRight(let damping, let velocity):
            initialFrame.origin.x = presentedFrame.size.width
            animateBounce(damping, velocity, transitionContext, controller, initialFrame, finalFrame)
        case .bounceBottom(let damping, let velocity):
            initialFrame.origin.y = presentedFrame.size.height
            animateBounce(damping, velocity, transitionContext, controller, initialFrame, finalFrame)
        }
    }
}

class PopKitDismissingAnimator: NSObject, UIViewControllerAnimatedTransitioning, TransitionDuration, PopKitAnimator {
    var kit: PopKit
    var transitionDuration: TimeInterval?
    
