             shadow?.shadowOffset = CGSize(width: -2.0, height: -2.0)
         }
         shadow?.shadowColor = color
+        // Styles only react to changes in their properties, so reassign shadow
         style.shadow = shadow
     }
     

        // Set the attributed string
        self.setAttributedTitle(title == nil ? nil : style.attributedString(with: title!), for: state)
        
        if state == .normal{
            for (otherState, styleDelegate) in self.styleDelegates{
                if(otherState != state){

        return self.style(for: state).shadow?.shadowColor as? UIColor
    }
    
    // Init with default style
    public convenience init() {
        self.init(style: TextStyle())
    }
    
    // Init with a TextStyle. This copies the TextStyle.
    public required init(style: TextStyle, frame: CGRect = .zero) {
        super.init(frame: frame)
        self.setStyle(style, for: .normal)
