         super.touchesEnded(touches, withEvent: event)
     }
     
-    public override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {
+    public override func touchesCancelled(touches: Set<NSObject>, withEvent event: UIEvent!) {
         addLinkAttributesToLinkRangeResultWithTouches(touches, highlighted: false)
         super.touchesCancelled(touches, withEvent: event)
     }
     
     // MARK: Functions
     
-    func addAttributes(attributes: Dictionary<String, AnyObject>, range: NSRange) {
+    func addAttributes(attributes: Dictionary<NSObject, AnyObject>, range: NSRange) {
         if let contextLabelData = contextLabelData {
-            let mutableAttributedString = NSMutableAttributedString(attributedString: contextLabelData.attributedString)
+            var mutableAttributedString = NSMutableAttributedString(attributedString: contextLabelData.attributedString)
             mutableAttributedString.addAttributes(attributes, range: range)
             
             contextLabelData.attributedString = mutableAttributedString

        super.touchesBegan(touches, withEvent: event)
    }

    public override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {

        if let linkRangeResult = getLinkRangeResultWithTouches(touches) {
            
            if linkRangeResult.linkRange.startIndex != selectedLinkRangeResult?.linkRange.startIndex  {
                if let selectedLinkRangeResult = selectedLinkRangeResult, attributedText = attributedText {
                    self.attributedText = addLinkAttributesToAttributedString(attributedText, withLinkRangeResults: [selectedLinkRangeResult], highlighted: false)
                }
            }
            

        super.touchesMoved(touches, withEvent: event)
    }
    
    public override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
        
        addLinkAttributesToLinkRangeResultWithTouches(touches, highlighted: false)
        
