 public extension UIView {
     /// Run a \`tada\` animation effect on the receiver.
     ///
-    /// - parameter completion: a completion clousure to execute when the animation finished.
+    /// - parameter completion: a completion closure to execute when the animation finished.
     ///
     public func tada(completion: @escaping () -> Void = {}) {
         chainAnimator.basic.property("transform.scale").fromValue(1.0).toValue(1.1).duration(0.15).combineBasic().property("transform.rotation").byValue(M_PI/21.0).duration(0.1).autoreverses().repeatCount(2).combineBasic().beginTime(0.1).property("transform.rotation").byValue(-M_PI/18.0).duration(0.1).autoreverses().repeatCount(2).nextToBasic().property("transform.scale").toValue(1.0).duration(0.15).start(completion: completion)

    }
    /// Run a \`expand\` animation effect on the receiver.
    ///
    /// - Parameter completion: a completion clousure to execute when the animation finished.
    ///
    public func expand(completion:@escaping () -> Void = {}) {
        chainAnimator.basic.property("transform.scale").fromValue(0.0).toValue(1.0).duration(0.5).start(completion: completion)
    }
    /// Run a \`compress\` animation effect on the receiver.
    ///
    /// - Parameter completion: a completion clousure to execute when the animation finished.
    ///
    public func compress(completion: @escaping () -> Void = {}) {
        chainAnimator.basic.property("transform.scale").fromValue(1.0).toValue(0.0).duration(0.5).start(completion: completion)
    }
    /// Run a \`hinge\` animation effect on the receiver.
    ///
    /// - Parameter completion: a completion clousure to execute when the animation finished.
    ///
    public func hinge(completion: @escaping () -> Void = {}) {
        layer.anchorToLeftTop()

    }
    /// Run a \`swing\` animation effect on the receiver.
    ///
    /// - Parameter completion: a completion closure to execute when the animation finished.
    ///
    public func swing(completion: @escaping () -> Void = {}) {
        chainAnimator.basic.property("transform.rotation").byValue(M_PI/21.0).duration(0.1).autoreverses().repeatCount(2).combineBasic().beginTime(0.1).property("transform.rotation").byValue(-M_PI/18.0).duration(0.1).autoreverses().repeatCount(2).nextToBasic().property("transform.scale").toValue(1.0).duration(0.15).start(completion: completion)
