         return true
     }
 
-    open func textViewDidBeginEditing(_ textView: UITextView) {
+    public func textViewDidBeginEditing(_ textView: UITextView) {
         delegate?.textViewDidBeginEditing?(textView)
     }
 
-    open func textViewDidChangeSelection(_ textView: UITextView) {
+    public func textViewDidChangeSelection(_ textView: UITextView) {
         if editingMention == false {
             adjust(textView, range: textView.selectedRange)
             delegate?.textViewDidChangeSelection?(textView)
         }
     }
     
-    open func textViewDidEndEditing(_ textView: UITextView) {
+    public func textViewDidEndEditing(_ textView: UITextView) {
         delegate?.textViewDidEndEditing?(textView)
     }
     
-    open func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
+    public func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
         if let shouldBeginEditing = delegate?.textViewShouldBeginEditing?(textView) {
             return shouldBeginEditing
         }

     @param mention: the mention object to apply
     @return Bool: whether or not a mention was added
     */
    @discardableResult open func addMention(_ mention: SZCreateMentionProtocol) -> Bool {
        guard var currentMentionRange = currentMentionRange else { return false }

        filterString = nil

    var szMentionRange: NSRange {get}
}

public class SZMentionsListener: NSObject {

    /**
     @brief Array of mentions currently added to the textview
     */
    public var mentions:[SZMention] { return mutableMentions }

    /**
     @brief Trigger to start a mention. Default: @
