     /// The number of extra sections in the tableview, not counting classesBySection
     /// This number needs to be subtracted from sections when accessing classesBySections
     private let accessorySections: Int = 2
+    
+    /// The rating view cell, once created it will be reused
+    private var ratingViewCell: LPRatingTableViewCell?
     
     // MARK: - Overrides
     

    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        // If section is for rating, then add the rating cell, else do normal cells
        if shouldPresentRating && indexPath.section == ratingsSection {
            return createRatingCell()
        }
        

    
    /// Creates a rating cell and returns it
    private func createRatingCell() -> LPRatingTableViewCell {
        guard let cell = ratingViewCell else {
            // Create the cell
            let newCell = LPRatingTableViewCell(style: .default, reuseIdentifier: nil)
            newCell.delegate = self
            if ratingViewCell == nil {
                ratingViewCell = newCell
            }
            return newCell
        }
        
        return cell
    }
    
