         self.edgesForExtendedLayout = []
         
         self.viewController.parentViewController = self
+        
+        self._keyboard.add(observer: self, priority: 0)
+    }
+    
+    deinit {
+        self._keyboard.remove(observer: self)
     }
 
     open override func didLoad() {

        if self._contentSizeConstraints.count > 0 {
            self.viewController.view.addConstraints(self._contentSizeConstraints)
        }
    }

    @objc

            self._contentLayoutConstraints.append(self.viewController.view.topLayout == self.view.topLayout.offset(offset))
            break
        case .center(let offset):
            self._contentLayoutConstraints.append(self.viewController.view.centerYLayout == self.view.centerYLayout.offset(offset + self._keyboardHeight))
            break
        case .bottom(let offset):
            self._contentLayoutConstraints.append(self.viewController.view.bottomLayout == self.view.bottomLayout.offset(-(offset + self._keyboardHeight)))
            break
        }
        if self._contentLayoutConstraints.count > 0 {
