   func update(arrow: Arrow, animated: Bool) {
     switch arrow {
     case .Up:
-      if animated {
-        // Change direction from down to up with animation
-        self.indicatorImageView.rotate(withAngle: CGFloat(0), animated: false)
-        self.indicatorImageView.rotate(withAngle: CGFloat(M_PI), animated: true)
-      } else {
-        // Change direction from down to up without animation
-        self.indicatorImageView.rotate(withAngle: CGFloat(M_PI), animated: false)
-      }
+      self.indicatorImageView.rotate(withAngle: CGFloat(M_PI), animated: animated)
     case .Down:
-      if animated {
-        // Change direction from up to down with animation
-        self.indicatorImageView.rotate(withAngle: CGFloat(M_PI), animated: false)
-        self.indicatorImageView.rotate(withAngle: CGFloat(0), animated: true)
-      }
+      self.indicatorImageView.rotate(withAngle: CGFloat(0), animated: animated)
     }
   }
 }


extension UIImageView {
  func rotate(withAngle angle: CGFloat, animated: Bool) {
      UIView.animate(withDuration: animated ? 0.5 : 0, animations: {
        self.transform = CGAffineTransform(rotationAngle: angle)
      })
  }
}

    case .Default:
      cell.collapse(animated: false)
    case .Expand:
      if let answer = currentItem.answer {
        cell.expand(withAnswer: answer, animated: true)
      } else if let attributedAnswer = currentItem.attributedAnswer {
        cell.expand(withAttributedAnswer: attributedAnswer, animated: true)
      }
      expandedCells[indexPath.section] = .Expanded
    case .Collapse:
      cell.collapse(animated: true)
      expandedCells[indexPath.section] = .Default
    case .Expanded:
      if let answer = currentItem.answer {
        cell.expand(withAnswer: answer, animated: false)
      } else if let attributedAnswer = currentItem.attributedAnswer {
        cell.expand(withAttributedAnswer: attributedAnswer, animated: false)
      }
    }
  }
}

extension FAQView: UITableViewDelegate, UITableViewDataSource {
