         textStorage.setAttributedString(attrString)
         cacheLinkRanges()
         invalidateDisplayAndLayout()
+        
+        let attributes = attrString.attributesAtIndex(0, effectiveRange: nil)
+        _font = (attributes[NSFontAttributeName] as? UIFont) ?? Defaults.font
+        _textColor = (attributes[NSFontAttributeName] as? UIColor) ?? Defaults.textColor
+        
+        let paragraphStyle = attributes[NSParagraphStyleAttributeName] as? NSParagraphStyle
+        _textAlignment = paragraphStyle?.alignment ?? Defaults.textAlignment
+        _lineBreakMode = paragraphStyle?.lineBreakMode ?? Defaults.lineBreakMode
+        
+        let shadow = attributes[NSShadowAttributeName] as? NSShadow
+        _shadowColor = shadow?.shadowColor as? UIColor
+        _shadowOffset = shadow?.shadowOffset
     }
     
     private func applyAttributeWithKey(key: String, value: AnyObject?) {

            }
        }
    }
    
    public var font: UIFont = UIFont.systemFontOfSize(17) {
        didSet {
            applyAttributeWithKey(NSFontAttributeName, value: font)
        }
    }
    
    public var textColor: UIColor = UIColor.blackColor() {
        didSet {
            applyAttributeWithKey(NSForegroundColorAttributeName, value: textColor)
        }
    }
    
    public var textAlignment: NSTextAlignment = .Left {
        didSet {
            applyAttributeWithKey(NSParagraphStyleAttributeName, value: paragraphStyle)
        }
    }
    
    public var lineBreakMode: NSLineBreakMode = .ByTruncatingTail {
        didSet {
            textContainer.lineBreakMode = lineBreakMode
            applyAttributeWithKey(NSParagraphStyleAttributeName, value: paragraphStyle)
        }
    }
    
    public var shadowColor: UIColor? {
        didSet {
            applyAttributeWithKey(NSShadowAttributeName, value: shadow)
        }
    }
    
    public var shadowOffset: CGSize? {
        didSet {
            applyAttributeWithKey(NSShadowAttributeName, value: shadow)
        }
    }
    
    public var linkHighlightColor: UIColor = UIColor(white: 0, alpha: 0.2)

    
    // MARK: Applying Attributes
    
    private func clear() {
        textStorage.deleteCharactersInRange(NSRange(location: 0, length: textStorage.length))
        invalidateDisplayAndLayout()
