         activeElements[.URL]?.appendContentsOf(urlElements)
         
         //HASHTAGS        
-        let hashtagElements = ActiveBuilder.createHashtagElements(fromText: textString, range: textRange)
+        let hashtagElements = ActiveBuilder.createHashtagElements(fromText: textString, range: textRange).filter { (_, element: ActiveElement) in
+
+            switch element {
+                case .Hashtag(let tag): return hashtagFilterPredicate(tag)
+                default: return true
+            }
+        }
         activeElements[.Hashtag]?.appendContentsOf(hashtagElements)
         
         //MENTIONS
-        let mentionElements = ActiveBuilder.createMentionElements(fromText: textString, range: textRange)
+        let mentionElements = ActiveBuilder.createMentionElements(fromText: textString, range: textRange).filter { (_, element: ActiveElement) in
+
+            switch element {
+                case .Mention(let mention): return mentionFilterPredicate(mention)
+                default: return true
+            }
+        }
         activeElements[.Mention]?.appendContentsOf(mentionElements)
     }
 

    public func handleURLTap(handler: (NSURL) -> ()) {
        urlTapHandler = handler
    }
    
    // MARK: - override UILabel properties
    override public var text: String? {
        didSet { updateTextStorage() }

    @IBInspectable public var lineSpacing: Float? {
        didSet { updateTextStorage(parseText: false) }
    }

    // MARK: - public methods
    public func handleMentionTap(handler: (String) -> ()) {
        mentionTapHandler = handler
