     return self
   }
 
+  /**
+   Slides this view into position, from an edge of the parent (if "from" is set) or a fixed offset
+   away from its position (if "x" and "y" are set).
+   - Parameters:
+     - from: edge of the parent view that should be used as the starting point of the animation
+     - x: horizontal offset that should be used for the starting point of the animation
+     - y: vertical offset that should be used for the starting point of the animation
+     - duration: duration of the animation, in seconds
+     - delay: delay before the animation starts, in seconds
+   */
   func slideIn(from edge: SimpleAnimationEdge = .None,
                     x: CGFloat = 0,
                     y: CGFloat = 0,

    return self
  }

  func popIn(duration: NSTimeInterval = 0.5,
             delay: NSTimeInterval = 0,
             fromScale: CGFloat = 0.5) -> UIView {
    hidden = false
    alpha = 0
    transform = CGAffineTransformMakeScale(fromScale, fromScale)

    return self
  }

  /**
   Moves this view out of position, as though it were withdrawing into the screen.
   - Parameters:
     - toScale: ending scale for the view, should be between 0 and 1
     - duration: duration of the animation, in seconds
     - delay: delay before the animation starts, in seconds
   */
  func popOut(toScale: CGFloat = 0.5,
              duration: NSTimeInterval = 0.3,
              delay: NSTimeInterval = 0) -> UIView {
    let endTransform = CGAffineTransformMakeScale(toScale, toScale)
    let prepareTransform = CGAffineTransformMakeScale(1.1, 1.1)
    UIView.animateKeyframesWithDuration(
