diff --git a/js/interest_count.js b/js/interest_count.js
index 5a37a55..5c61a93 100644
--- a/js/interest_count.js
+++ b/js/interest_count.js
@@ -56,7 +56,7 @@
       };
 
       // Main interest count code to run once.
-      $('body', context).once('interestCount').each(function() {
+      once('interestCount', 'body').forEach(function() {
         // Get current node tags.
         const nodeTags = ('interest_count' in settings && 'tags' in settings.interest_count) ? settings.interest_count.tags : null;
 
diff --git a/smart_content_cdn.info.yml b/smart_content_cdn.info.yml
index e685304..cab4ded 100644
--- a/smart_content_cdn.info.yml
+++ b/smart_content_cdn.info.yml
@@ -2,7 +2,7 @@ name: 'Smart Content CDN'
 type: module
 description: 'A content delivery network that personalizes content for users'
 configure: smart_content_cdn.config
-core_version_requirement: ^8 || ^9
+core_version_requirement: ^8 || ^9 || ^10
 package: Smart Content
 dependencies:
   - smart_content
diff --git a/smart_content_cdn.libraries.yml b/smart_content_cdn.libraries.yml
index b34ac0e..b755575 100644
--- a/smart_content_cdn.libraries.yml
+++ b/smart_content_cdn.libraries.yml
@@ -21,7 +21,7 @@ interest_count:
     js/interest_count.js: {}
   dependencies:
     - core/jquery
-    - core/jquery.once
+    - core/once
     - core/drupal
     - core/drupalSettings
     - core/js-cookie
diff --git a/src/EventSubscriber/HeaderEventSubscriber.php b/src/EventSubscriber/HeaderEventSubscriber.php
index f3bb2a6..bd1e1f1 100644
--- a/src/EventSubscriber/HeaderEventSubscriber.php
+++ b/src/EventSubscriber/HeaderEventSubscriber.php
@@ -3,7 +3,7 @@
 namespace Drupal\smart_content_cdn\EventSubscriber;
 
 use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpKernel\Event\ResponseEvent;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use Pantheon\EI\HeaderData;
 
@@ -23,10 +23,10 @@ class HeaderEventSubscriber implements EventSubscriberInterface {
   /**
    * This method is called when the kernel.response is dispatched.
    *
-   * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event
+   * @param \ymfony\Component\HttpKernel\Event\ResponseEvent $event
    *   The dispatched event.
    */
-  public function onRespond(FilterResponseEvent $event) {
+  public function onRespond(ResponseEvent $event) {
     $config = \Drupal::configFactory()->get('smart_content_cdn.config');
 
     $response = $event->getResponse();
diff --git a/src/EventSubscriber/SmartCDNCookie.php b/src/EventSubscriber/SmartCDNCookie.php
index 2317c49..ee21f6a 100644
--- a/src/EventSubscriber/SmartCDNCookie.php
+++ b/src/EventSubscriber/SmartCDNCookie.php
@@ -6,7 +6,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpKernel\Event\ResponseEvent;
 
 /**
  * Class SubscriberCookie.
@@ -141,10 +141,10 @@ class SmartCDNCookie implements EventSubscriberInterface {
   /**
    * React to the symfony kernel response event by managing visitor cookies.
    *
-   * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event
+   * @param \Symfony\Component\HttpKernel\Event\ResponseEvent $event
    *   The event to process.
    */
-  public function onResponse(FilterResponseEvent $event) {
+  public function onResponse(ResponseEvent $event) {
     $response = $event->getResponse();
 
     if ($this->getShouldUpdateCookie()) {
