         
         var damping: CGFloat {
             switch self {
-            case .subtle: return 1
-            case .regular: return 0.75
+            case .subtle: return 0.8
+            case .regular: return 0.7
             case .prominent: return 0.5
             }
         }

    
    private lazy var animator: UIDynamicAnimator = UIDynamicAnimator(collectionViewLayout: self)
    
    public override func prepare() {
        super.prepare()
        guard let view = collectionView, let attributes = super.layoutAttributesForElements(in: view.bounds)?.flatMap({ $0.copy() as? UICollectionViewLayoutAttributes }) else { return }
        
        oldBehaviors(for: attributes).forEach { animator.removeBehavior($0) }
        newBehaviors(for: attributes).forEach { animator.addBehavior($0, damping, frequency) }

        addBehavior(behavior)
    }
}

extension CGPoint {
    
    func floored() -> CGPoint {
        return CGPoint(x: floor(x), y: floor(y))
    }
    
    mutating func flooredInPlace() {
        self = floored()
    }
}
