     }
     fileprivate var keyboardStatus = KeyboardStatus.hidden
     
-    fileprivate var viewController:UIViewController
-    fileprivate var viewToAdjust:UIView
-    fileprivate var positionConstraint:NSLayoutConstraint
+    fileprivate weak var viewController: UIViewController!
+    fileprivate weak var viewToAdjust: UIView!
+    fileprivate weak var positionConstraint: NSLayoutConstraint!
     
-    fileprivate var originalConstant:CGFloat
-    fileprivate var originalBottomSpace:CGFloat = 0
-    fileprivate var currentKeyboardHeight:CGFloat = 0
+    fileprivate var originalConstant: CGFloat
+    fileprivate var originalBottomSpace: CGFloat = 0
+    fileprivate var currentKeyboardHeight: CGFloat = 0
 
-    init(withViewController viewController:UIViewController, positionConstraint:NSLayoutConstraint, viewToAdjust:UIView) {
+    init(withViewController viewController: UIViewController, positionConstraint: NSLayoutConstraint, viewToAdjust: UIView) {
         self.viewController = viewController
         self.viewToAdjust = viewToAdjust
         self.positionConstraint = positionConstraint

        keyboardStatus = .shown
    }
    
    @objc internal func keyboardWillChangeFrame(_ notification:Notification) {
        
        guard keyboardStatus != .hidden else {
            return

        updateForKeyboard(withNotification: notification)
    }
    
    @objc internal func keyboardWillHide(_ notification: Notification) {
        guard keyboardStatus != .hidden else {
            return
        }
