     override func viewDidLoad() {
         super.viewDidLoad()
 
-//        collectionView.setCollectionViewLayout(DGCollectionViewLeftAlignFlowLayout(), animated: false)
         collectionView.register(UINib.init(nibName: mealHeaderViewCellIdentifier, bundle: nil), forCellWithReuseIdentifier: mealHeaderViewCellIdentifier)
         collectionView.register(UINib.init(nibName: mealSectionViewCellIdentifier, bundle: nil), forCellWithReuseIdentifier: mealSectionViewCellIdentifier)
         collectionView.register(UINib.init(nibName: mealTagViewCellIdentifier, bundle: nil), forCellWithReuseIdentifier: mealTagViewCellIdentifier)

                    startX = location.x
                case .changed:
                    offsetX = location.x - startX
                    cell.frame = CGRect(x: offsetX, y: cell.frame.origin.y, width: cell.frame.width, height: cell.frame.height)
                case .ended:
                    offsetX = location.x - startX
                    if offsetX > 200 {
                        ingredientTitles.remove(at: indexPath.row)
                        self.collectionView.deleteItems(at: [indexPath])
                        self.collectionView.reloadData()
                    } else {
                        cell.frame = CGRect(origin: CGPoint(x: 0, y: cell.frame.origin.y), size: cellSize)
                    }
                    startX = 0
                    offsetX = 0

        }
    }
    
    private var startX: CGFloat = 0
    private var offsetX: CGFloat = 0
    @objc private func handlePanItem(gestureRecognizer: UIPanGestureRecognizer) {
        let location = gestureRecognizer.location(in: self.collectionView)
        if let indexPath = self.collectionView.indexPathForItem(at: location) {
            if indexPath.section != 6 {
                return
            }

            if let cell = self.collectionView.cellForItem(at: indexPath) {
                let cellSize = cell.frame.size
                switch gestureRecognizer.state {
