       }, completion: completion)
   }
   
-  fileprivate func fadeInOut(completion: AnimatableCompletion? = nil) {
+  func fadeInOut(completion: AnimatableCompletion? = nil) {
     CALayer.animate({
       let animation = CABasicAnimation(keyPath: "opacity")
       animation.fromValue = 0

      }
    )
  }
  
  // MARK: Private helper
  fileprivate var screenSize: CGSize {
    return self.window?.screen.bounds.size ?? CGSize.zero
  }
}

      animation.isRemovedOnCompletion = false
      self.layer.add(animation, forKey: "fade")
      },
      completion: {
        self.alpha = 0
        completion?()
      }
    )
  }
  
  func animateBy(x: CGFloat, y: CGFloat, completion: AnimatableCompletion? = nil) {
    let translate = CGAffineTransform(translationX: x, y: y)
    UIView.animate(withDuration: duration, delay: delay, usingSpringWithDamping: damping, initialSpringVelocity: velocity, options: [],
      animations: {
