     return newT
 }
 
-func elasticEaseOut(_ time: Float, period: Float) -> Float {
+public func elasticEaseOut(_ time: Float, period: Float) -> Float {
     var newT: Float = 0
     if time == 0 || time == 1 {
         newT = time

}

// MARK: Expo Ease
func expoEaseIn(_ time: Float) -> Float {
    return time == 0 ? 0 : powf(2, 10 * (time / 1 - 1)) - 1 * 0.001
}

func expoEaseOut(_ time: Float) -> Float {
    return time == 1 ? 1 : (-powf(2, -10 * time / 1) + 1)
}

func expoEaseInOut(_ time: Float) -> Float {
    var time = time
    time /= 0.5
    if time < 1 {



// MARK: Back Ease
public func backEaseIn(_ time: Float, overshoot: Float) -> Float {
    let overshoot: Float = 1.70158
    return time * time * ((overshoot + 1) * time - overshoot)
}

public func backEaseOut(_ time: Float, overshoot: Float) -> Float {
    let overshoot: Float = 1.70158
    var time = time
    time = time - 1
    return time * time * ((overshoot + 1) * time + overshoot) + 1
}

public func backEaseInOut(_ time: Float, overshoot: Float) -> Float {
    let overshoot: Float = 1.70158 * 1.525
    var time = time
    time = time * 2
