   open var placeHolderLabel = CATextLayer()
   open var textField = UITextField()
   open var separatorView = UIView()
-  fileprivate var state: State = State.idle
-  fileprivate var placeHolderCGFont: CGFont!
-  fileprivate var placeHolderUIFont: UIFont!
+  open var state: State = State.idle
   
   override open func awakeFromNib() {
     super.awakeFromNib()
     build()
   }
   
-  fileprivate func build() {
+  open func build() {
     placeHolderLabel.contentsScale = UIScreen.main.scale
     addSubview(textField)
     addSubview(iconImageView)

    layout()
  }
  
  func layout() {
    var currentX: CGFloat = leftInset
    if let iconImage = iconImage {
      iconImageView.isHidden = false

    } else {
      iconImageView.isHidden = true
    }
    let placeHolderUIFont = state == .idle ? UIFont(name: placeHolderFontKey, size: idlePlaceHolderFontSize) : UIFont(name: placeHolderFontKey, size: floatPlaceHolderFontSize)
    let placeHolderHeight: CGFloat = placeHolderUIFont!.lineHeight + 2
    let textFieldHeight = textField.font!.lineHeight + 2
    let inputHeight = placeHolderHeight + textInnerPadding + textFieldHeight
    let widthForInput = viewWidth - currentX - rightInset
    if state == .idle {
      placeHolderLabel.frame = CGRect(x: currentX, y: viewHeight.half - placeHolderHeight.half, width: widthForInput, height: idlePlaceHolderFontSize + 4)
    } else {
      placeHolderLabel.frame = CGRect(x: currentX, y: viewHeight.half - inputHeight.half, width: widthForInput, height: idlePlaceHolderFontSize + 4)
    }
    textField.frame = CGRect(x: currentX, y: viewHeight.half + inputHeight.half - textFieldHeight, width: widthForInput, height: textFieldHeight)
    
