         
         targetView?.removeGestureRecognizer(panGesture)
         
-        let info = Info(notification.userInfo)
+        let info = Keynode.Info(notification.userInfo)
         
         if let rect = info.frame {
             willShowAnimation(false, rect: rect, duration: info.duration, options: info.curve | .BeginFromCurrentState)

            }
        }
        
        let info = Info()
        let options = info.curve | .BeginFromCurrentState
        UIView.animateWithDuration(info.duration, delay: 0, options: options, animations: animations, completion: completion)
    }
    
    func setResponder(responder: UIResponder) {
        firstResponder = Responder(responder)
        if checkWork(workingTextField) {
            return
        }
        
        if delegate?.controller?(self, shouldHandlePanningKeyboardAtResponder: responder) == false {
            gestureHandle = false
        } else {
            gestureHandle = true
        }
    }
}

// MARK: - Action Methods
extension Controller {
    func panGestureAction(gesture: UIPanGestureRecognizer) {
        if let keyboard = firstResponder?.keyboard {
            if let window = keyboard.window {

        }
        
        if let textField = workingTextField {
            Keynode.Responder(textField)
            textField.resignFirstResponder()
            textField.removeFromSuperview()
            return
