 class EmojiInputEngine : EmojiInputEngineProtocol {
     private var _keyword:String!
     private let emojis:[Emoji!]!
-    // map from keyword to emoji keys, e.g. "face": ["smile", "sad", ...]
-    private let keywordIndex:[String:[String]!]!
+    // map from keyword to emojis, e.g. "face": ["smile", "sad", ...]
+    private let keywordIndex:[String:[Emoji!]!]!
     // Sorted keywords
     private let sortedKeywords:[String]!
     

    }
    
    func candidates() -> [EmojiCandidate!]! {
        return []
    }
    
    /// Do binary search for finding spefic prefix in string array

    }
    
    init(emojis: [Emoji!]!) {
        var keywordIndex = [String:[Emoji!]!]()
        for emoji in emojis {
            var keywords = emoji.keywords
            keywords.append(emoji.key)
            for keyword in keywords {
                let normalizedKeyword = EmojiInputEngine.normalize(keyword)
                if keywordIndex[normalizedKeyword] != nil {
                    keywordIndex[normalizedKeyword]?.append(emoji)
                } else {
                    keywordIndex[normalizedKeyword] = [emoji]
                }
            }
        }
