diff --git a/src/is_err.rs b/src/is_err.rs
index dc9f902..b011227 100644
--- a/src/is_err.rs
+++ b/src/is_err.rs
@@ -1,4 +1,3 @@
-use crate::utils::use_derive_signal;
 use leptos::prelude::*;
 
 crate::use_derive_signal!(
diff --git a/src/use_mutation_observer.rs b/src/use_mutation_observer.rs
index 5ee8ce1..cd723b0 100644
--- a/src/use_mutation_observer.rs
+++ b/src/use_mutation_observer.rs
@@ -1,13 +1,12 @@
 use crate::core::ElementsMaybeSignal;
 use cfg_if::cfg_if;
 use default_struct_builder::DefaultBuilder;
-use leptos::prelude::diagnostics::SpecialNonReactiveZone;
 use leptos::prelude::wrappers::read::Signal;
-use leptos::prelude::*;
 use wasm_bindgen::prelude::*;
 
 cfg_if! { if #[cfg(not(feature = "ssr"))] {
     use crate::use_supported;
+    use leptos::prelude::*;
     use std::cell::RefCell;
     use std::rc::Rc;
 }}
@@ -90,7 +89,7 @@ where
         let closure_js = Closure::<dyn FnMut(js_sys::Array, web_sys::MutationObserver)>::new(
             move |entries: js_sys::Array, observer| {
                 #[cfg(debug_assertions)]
-                let _z = SpecialNonReactiveZone::enter();
+                let _z = leptos::prelude::diagnostics::SpecialNonReactiveZone::enter();
 
                 callback(
                     entries
diff --git a/src/use_resize_observer.rs b/src/use_resize_observer.rs
index 597ec7f..34bb0c2 100644
--- a/src/use_resize_observer.rs
+++ b/src/use_resize_observer.rs
@@ -1,15 +1,14 @@
 use crate::core::ElementsMaybeSignal;
 use cfg_if::cfg_if;
 use default_struct_builder::DefaultBuilder;
-use leptos::prelude::diagnostics::SpecialNonReactiveZone;
 use leptos::prelude::wrappers::read::Signal;
-use leptos::prelude::*;
 
 cfg_if! { if #[cfg(not(feature = "ssr"))] {
     use crate::use_supported;
     use std::cell::RefCell;
     use std::rc::Rc;
     use wasm_bindgen::prelude::*;
+    use leptos::prelude::*;
 }}
 
 /// Reports changes to the dimensions of an Element's content or the border-box.
@@ -92,7 +91,7 @@ where
         let closure_js = Closure::<dyn FnMut(js_sys::Array, web_sys::ResizeObserver)>::new(
             move |entries: js_sys::Array, observer| {
                 #[cfg(debug_assertions)]
-                let _z = SpecialNonReactiveZone::enter();
+                let _z = leptos::prelude::diagnostics::SpecialNonReactiveZone::enter();
 
                 callback(
                     entries
diff --git a/src/use_user_media.rs b/src/use_user_media.rs
index 2336f38..10d1c14 100644
--- a/src/use_user_media.rs
+++ b/src/use_user_media.rs
@@ -1,7 +1,7 @@
 use crate::core::MaybeRwSignal;
 use cfg_if::cfg_if;
 use default_struct_builder::DefaultBuilder;
-use leptos::*;
+use leptos::prelude::*;
 use wasm_bindgen::{JsCast, JsValue};
 
 /// Reactive [`mediaDevices.getUserMedia`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) streaming.
@@ -59,7 +59,7 @@ pub fn use_user_media_with_options(
 
     let (enabled, set_enabled) = enabled.into_signal();
 
-    let (stream, set_stream) = create_signal(None::<Result<web_sys::MediaStream, JsValue>>);
+    let (stream, set_stream) = signal(None::<Result<web_sys::MediaStream, JsValue>>);
 
     let _start = move || async move {
         cfg_if! { if #[cfg(not(feature = "ssr"))] {
@@ -88,7 +88,7 @@ pub fn use_user_media_with_options(
 
     let start = move || {
         cfg_if! { if #[cfg(not(feature = "ssr"))] {
-            spawn_local(async move {
+            leptos::spawn::spawn_local(async move {
                 _start().await;
                 stream.with_untracked(move |stream| {
                     if let Some(Ok(_)) = stream {
@@ -108,7 +108,7 @@ pub fn use_user_media_with_options(
         move || enabled.get(),
         move |enabled, _, _| {
             if *enabled {
-                spawn_local(async move {
+                leptos::spawn::spawn_local(async move {
                     _start().await;
                 });
             } else {
diff --git a/src/use_websocket.rs b/src/use_websocket.rs
index 2f4dee3..51b657f 100644
--- a/src/use_websocket.rs
+++ b/src/use_websocket.rs
@@ -548,7 +548,7 @@ where
     };
 
     let send = {
-        let on_error = Rc::clone(&on_error);
+        let on_error = Arc::clone(&on_error);
 
         move |value: &T| {
             if C::is_binary() {
@@ -670,7 +670,7 @@ impl<T: ?Sized, E, D> UseWebSocketOptions<T, E, D> {
         F: Fn(UseWebSocketError<E, D>) + 'static,
     {
         Self {
-            on_error: Rc::new(handler),
+            on_error: Arc::new(handler),
             ..self
         }
     }
@@ -681,7 +681,7 @@ impl<T: ?Sized, E, D> UseWebSocketOptions<T, E, D> {
         F: Fn(&T) + 'static,
     {
         Self {
-            on_message: Rc::new(handler),
+            on_message: Arc::new(handler),
             ..self
         }
     }