       return Bakery.bakery
   }
 
+  /**
+   Chain gets executed when the first animate blocks of animations are done.
+
+   - Parameter delay: The delay that this chain should wait to be triggered.
+   - Parameter duration: The duration of the animation.
+   - Parameter curve: The animation curve.
+
+   - Returns: A series of bakes that you can configure with all the animatable properties.
+   */
   public func chain(delay: NSTimeInterval = 0, duration: NSTimeInterval = 0.5,
     curve: Animation.Curve = .Linear, animations: (Bake, Bake, Bake) -> Void) -> Bakery {
       let bakes = bezier(3, delay, duration, curve)

      return Bakery.bakery
  }

  public func chain(delay delay: NSTimeInterval = 0, spring: CGFloat, friction: CGFloat,
    mass: CGFloat, tolerance: CGFloat = 0.0001, animations: (Bake, Bake, Bake) -> Void) -> Bakery {
      let bakes = constructor(3, delay: delay, spring, friction, mass: mass, tolerance: tolerance)


      return Bakery.bakery
  }

  // MARK: - Private constructors

  private func bezier(value: Int, _ delay: NSTimeInterval,
    _ duration: NSTimeInterval, _ curve: Animation.Curve) -> [Bake] {
