         
     }
     
-    func stop() {
+    public func stop() {
+        // TODO: this needs a bit more work
         let center = NotificationCenter.default
         center.removeObserver(self)
     }

    }
    
    
    typealias TypistCallback = (KeyboardOptions) -> ()
    
    enum KeyboardEvent {
        case willShow
        case didShow
        case willHide


import UIKit

public class Typist: NSObject {
    
    static public let shared = Typist()
    
    public struct KeyboardOptions {
        /// UIKeyboardIsLocalUserInfoKey: The key for an NSNumber object containing a Boolean that identifies whether the keyboard belongs to the current app. With multitasking on iPad, all visible apps are notified when the keyboard appears and disappears. The value of this key is YES for the app that caused the keyboard to appear and NO for any other apps.
        let belongsToCurrentApp: Bool
        
