       })
   }
   
+  private func updateOverlay(distance: CGFloat) {
+    var newDirection: Direction = distance < 0 ? .Left: .Right
+    
+    if newDirection != direction {
+      direction = newDirection
+      overlay.image = direction == .Right ? yeahImage : nahImage
+    }
+    overlay.alpha = abs(distance) / (superview!.frame.width/2)
+  }
+  
   private func resetViewPositionAndTransformations() {
     UIView.animateWithDuration(0.2, animations: { () -> Void in
       self.center = self.originalPoint!
       self.transform = CGAffineTransformMakeRotation(0)
+      self.overlay.alpha = 0
     })
   }
 }

  private var originalPoint: CGPoint?
  weak var delegate: SwipeViewDelegate?
  let overlay: UIImageView = UIImageView()
  
  //MARK: - Initializers
  required init(coder aDecoder: NSCoder) {

      let rotationAngle = (CGFloat(2*M_PI/16)*rotationPercent)
      transform = CGAffineTransformMakeRotation(rotationAngle)
      center = CGPointMake(originalPoint!.x + distance.x, originalPoint!.y + distance.y)
      updateOverlay(distance.x)
      
    case UIGestureRecognizerState.Ended:
      if abs(distance.x) < frame.width/4 {
