             return sharedInstance.remoteKeyboard
         }
         
-        weak var remoteKeyboard: UIView?
-        weak var effectsKeyboard: UIView?
+        private weak var remoteKeyboard: UIView?
+        private weak var effectsKeyboard: UIView?
+        
+        static var frame: CGRect? {
+            get {
+                return sharedKeyboard?.frame
+            }
+            set {
+                if let frame = newValue {
+                    sharedInstance.remoteKeyboard?.frame = frame
+                    sharedInstance.effectsKeyboard?.frame = frame
+                }
+            }
+        }
+        
+        static var hidden: Bool? {
+            get {
+                return sharedKeyboard?.hidden
+            }
+            set {
+                if let hidden = newValue {
+                    sharedInstance.remoteKeyboard?.hidden = hidden
+                    sharedInstance.effectsKeyboard?.hidden = hidden
+                }
+            }
+        }
         
         class func setKeyboard(newValue: UIView?) {
             func getKeyboard(keyboard: UIView) -> UIView {

        if keyboardRect.origin.y != keyboard.frame.origin.y {
            let show = keyboardRect.origin.y < keyboard.frame.origin.y
            animationsHandler?(show: show, rect: keyboardRect)
            keyboard.frame = keyboardRect
        }
    }
    

            if inputAccessoryView == blankAccessoryView {
                inputAccessoryView = nil
            }
            Keyboard.hidden = false
        }
    }
}
