     
     override public var backgroundColor: UIColor? {
         set {
-            backgroundLayerColor = newValue!
+            backgroundLayerColor = newValue
         }
         get {
             return backgroundLayerColor

            width: placeholderLabel.frame.size.width, height: placeholderLabel.frame.size.height)
    }
    
    override public func animateViewsForTextEntry() {
        borderLayer.borderColor = textColor?.CGColor
        borderLayer.shadowOffset = CGSizeZero
        borderLayer.borderWidth = borderThickness
        borderLayer.shadowColor = textColor?.CGColor
        borderLayer.shadowOpacity = 0.5
        borderLayer.shadowRadius = 1
    }
    
    override public func animateViewsForTextDisplay() {
        borderLayer.borderColor = nil
        borderLayer.shadowOffset = CGSizeZero
        borderLayer.borderWidth = 0
        borderLayer.shadowColor = nil
        borderLayer.shadowOpacity = 0
        borderLayer.shadowRadius = 0
    }
    
    // MARK: - Overrides
        
    override public func editingRectForBounds(bounds: CGRect) -> CGRect {

    private let borderLayer = CALayer()
    private var backgroundLayerColor: UIColor?    
    
    // MARK: - TextFieldsEffects
    
    override public func drawViewsForRect(rect: CGRect) {
        let frame = CGRect(origin: CGPointZero, size: CGSize(width: rect.size.width, height: rect.size.height))
