     label.textAlignment = .center
     return label
   }()
-  
-  public var items: [FAQItem]
-  
+
   var expandedCells = [CellOperation]()
-  
-  public var questionTextColor: UIColor!  {
-    get {
-      return configuration.questionTextColor
-    }
-    set(value) {
-      configuration.questionTextColor = value
-    }
-  }
-  
-  public var answerTextColor: UIColor! {
-    get {
-      return configuration.answerTextColor
-    }
-    set(value) {
-      configuration.answerTextColor = value
-    }
-  }
-  
-  public var questionTextFont: UIFont! {
-    get {
-      return configuration.questionTextFont
-    }
-    set(value) {
-      configuration.questionTextFont = value
-    }
-  }
-  
-  public var answerTextFont: UIFont! {
-    get {
-      return configuration.answerTextFont
-    }
-    set(value) {
-      configuration.answerTextFont = value
-    }
-  }
-  
-  public var titleLabelTextColor: UIColor! {
-    get {
-      return configuration.titleTextColor
-    }
-    set(value) {
-      configuration.titleTextColor = value
-      titleLabel.textColor = configuration.titleTextColor
-    }
-  }
-  
-  public var titleLabelTextFont: UIFont! {
-    get {
-      return configuration.titleTextFont
-    }
-    set(value) {
-      configuration.titleTextFont = value
-      titleLabel.font = configuration.titleTextFont
-    }
-  }
-  
-  public var titleLabelBackgroundColor: UIColor! {
-    get {
-      return configuration.titleLabelBackgroundColor
-    }
-    set(value) {
-      configuration.titleLabelBackgroundColor = value
-      titleLabel.backgroundColor = configuration.titleLabelBackgroundColor
-    }
-  }
-  
-  public var viewBackgroundColor: UIColor! {
-    get {
-      return configuration.viewBackgroundColor
-    }
-    set(value) {
-      configuration.viewBackgroundColor = value
-      self.backgroundColor = configuration.viewBackgroundColor
-    }
-  }
-  
-  public var cellBackgroundColor: UIColor! {
-    get {
-      return configuration.cellBackgroundColor
-    }
-    set(value) {
-      configuration.cellBackgroundColor = value
-    }
-  }
-  
-  public var separatorColor: UIColor! {
-    get {
-      return configuration.separatorColor
-    }
-    set(value) {
-      configuration.separatorColor = value
-    }
-  }
-  
-  public var dataDetectorTypes: UIDataDetectorTypes? {
-    get {
-      return configuration.dataDetectorTypes
-    }
-    set(value) {
-      configuration.dataDetectorTypes = value
-    }
-  }
-  
-  public var answerTintColor: UIColor! {
-    get {
-      return configuration.tintColor
-    }
-    set(value) {
-      configuration.tintColor = value
-    }
-  }
-  
   var configuration = FAQConfiguration()
   var heightAtIndexPath = NSMutableDictionary()
+  
+  // MARK: Initialization
   
   public init(frame: CGRect,title: String = "Top Queries", items: [FAQItem]) {
     self.items = items

    NSLayoutConstraint.activate([tableViewTrailing, tableViewLeading, tableViewTop, tableViewBottom, titleLabelLeading, titleLabelTrailing, titleLabelTop])
  }
  
  
  required public init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }
  
  func updateSection(_ section: Int) {
    if expandedCells[section] == .expanded {
      expandedCells[section] = .collapse
    } else {
      expandedCells[section] = .expand
    }
    tableView.reloadSections(IndexSet(integer: section), with: .fade)
    tableView.scrollToRow(at: IndexPath(row: 0, section: section), at: .top, animated: true)
  }
  
  func updateCellOperation(section: Int, cellOperation: CellOperation) {
    if cellOperation == .expand {
      expandedCells[section] = .expanded
    } else if cellOperation == .collapse {
      expandedCells[section] = .collapsed
    }
  }
}

extension FAQView: UITableViewDelegate, UITableViewDataSource {
  public func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    let height = self.heightAtIndexPath.object(forKey: indexPath)
    if ((height) != nil) {

      , answerTextViewTrailing, answerTextViewTop ,answerTextViewBottom, indicatorVerticalCenter, indicatorHorizontalCenter, indicatorWidth, indicatorHeight, containerTrailing, containerTop, containerWidth, containerHeight])
  }
  
  @objc private func didTapQuestion(_ recognizer: UIGestureRecognizer) {
    self.didSelectQuestion?(self)
  }
  
  private func expand(withAnswer answer: String, animated: Bool) {
    answerTextView.text = answer
    expand(animated: animated)
  }
  
  private func expand(withAttributedAnswer attributedAnswer: NSAttributedString, animated: Bool) {
    answerTextView.attributedText = attributedAnswer
    expand(animated: animated)
  }
  
  private func expand(animated: Bool) {
    answerTextView.isHidden = false
    if animated {
      answerTextView.alpha = 0
