 	
 	func updateUnreadIndicator() {
 		if !unreadIndicatorView.isHidden && cellData.read && !cellData.starred {
-			UIView.animate(withDuration: 0.66, animations: { self.unreadIndicatorView.alpha = 0 }) { _ in
-				self.unreadIndicatorView.isHidden = true
-				self.unreadIndicatorView.alpha = 1
-			}
+			unreadIndicatorPropertyAnimator = UIViewPropertyAnimator(duration: 0.66, curve: .easeInOut) { [weak self] in
+				self?.unreadIndicatorView.alpha = 0
+			}
+			unreadIndicatorPropertyAnimator?.addCompletion { [weak self] _ in
+				self?.unreadIndicatorView.isHidden = true
+				self?.unreadIndicatorView.alpha = 1
+				self?.unreadIndicatorPropertyAnimator = nil
+			}
+			unreadIndicatorPropertyAnimator?.startAnimation()
 		} else {
 			showOrHideView(unreadIndicatorView, cellData.read || cellData.starred)
 		}

	}
	
	override func prepareForReuse() {
		unreadIndicatorView.isHidden = true
		starView.isHidden = true
	}
	

	
	func updateStarView() {
		if !starView.isHidden &&  cellData.read && !cellData.starred {
			starViewPropertyAnimator = UIViewPropertyAnimator(duration: 0.66, curve: .easeInOut) { [weak self] in
				self?.starView.alpha = 0
			}
			starViewPropertyAnimator?.addCompletion { [weak self] _ in
				self?.starView.isHidden = true
				self?.starView.alpha = 1
				self?.starViewPropertyAnimator = nil
			}
			starViewPropertyAnimator?.startAnimation()
		} else {
			showOrHideView(starView, !cellData.starred)
		}
