     public var revealDirection: BWSwipeCellRevealDirection = .Both
     
     // The current state of the cell (either normal or past a threshold)
-    private var _state: BWSwipeCellState = .Normal
-    public var state: BWSwipeCellState {
-        return _state
-    }
+    public private(set) var state: BWSwipeCellState = .Normal
     
     // The point at which pan elasticity starts, and `state` changes. Defaults to the height of the `UITableViewCell` (i.e. when it form a perfect square)
     public lazy var threshold: CGFloat = {

        if (point.x > 0 && self.revealDirection == .Left) || (point.x < 0 && self.revealDirection == .Right) || self.revealDirection == .Both {
            self.contentView.frame = CGRectOffset(self.contentView.bounds, point.x, 0)
            if point.x >= self.threshold {
                _state = .PastThresholdLeft
                self.delegate?.swipeCellDidPassThreshold?(self)
            }
            else if point.x < -self.threshold {
                _state = .PastThresholdRight
                self.delegate?.swipeCellDidPassThreshold?(self)
            }
            else {
                _state = .Normal
            }
            self.delegate?.swipeCellDidSwipe?(self)
        }

    }
    
    public func cleanUp() {
        self.state = .Normal
    }
    
    func handlePanGesture(panGestureRecognizer: UIPanGestureRecognizer) {
