       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) -> Void) -> Bakery {
       let bakes = bezier(2, delay, duration, curve)

      return Bakery.bakery
  }

  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
  }

  /**
   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, Bake) -> Void) -> Bakery {
      let bakes = bezier(4, delay, duration, curve)
