 
 class Keyboard {
     struct Notifications {
-        static let KeyboardWillShow = "com.Ello.Keyboard.KeyboardWillShow"
-        static let KeyboardDidShow = "com.Ello.Keyboard.KeyboardDidShow"
-        static let KeyboardWillHide = "com.Ello.Keyboard.KeyboardWillHide"
-        static let KeyboardDidHide = "com.Ello.Keyboard.KeyboardDidHide"
+        static let KeyboardWillShow = TypedNotification<Keyboard>(name: "com.Ello.Keyboard.KeyboardWillShow")
+        static let KeyboardDidShow = TypedNotification<Keyboard>(name: "com.Ello.Keyboard.KeyboardDidShow")
+        static let KeyboardWillHide = TypedNotification<Keyboard>(name: "com.Ello.Keyboard.KeyboardWillHide")
+        static let KeyboardDidHide = TypedNotification<Keyboard>(name: "com.Ello.Keyboard.KeyboardDidHide")
     }
 
     class func shared() -> Keyboard {

        setFromNotification(notification)
        height = 0

        NSNotificationCenter.defaultCenter().postNotificationName(Notifications.KeyboardWillHide, object: nil)
    }

    @objc
    func didHide(notification : NSNotification) {
        NSNotificationCenter.defaultCenter().postNotificationName(Notifications.KeyboardDidHide, object: nil)
    }

    private func setFromNotification(notification : NSNotification) {

        setFromNotification(notification)
        height = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue().size.height

        postNotification(Notifications.KeyboardWillShow, self)
    }

    @objc
    func didShow(notification : NSNotification) {
        postNotification(Notifications.KeyboardDidShow, self)
    }

    @objc
