diff --git a/src/widgets/image.rs b/src/widgets/image.rs
index 94e9230..4ac058b 100644
--- a/src/widgets/image.rs
+++ b/src/widgets/image.rs
@@ -1,11 +1,15 @@
-use std::sync::Arc;
+use std::sync::{Arc, LazyLock};
-use cushy::{kludgine::{AnyTexture, LazyTexture}, value::{CallbackDisconnected, CallbackHandle, Destination, Dynamic, Source, Value}, widgets::Image};
+use cushy::{
+ kludgine::{AnyTexture, LazyTexture},
+ value::{CallbackDisconnected, CallbackHandle, Destination, Dynamic, Source, Value},
+ widgets::Image,
+};
use futures_util::lock::Mutex;
use http_cache_reqwest::{CACacheManager, Cache, CacheMode, HttpCache, HttpCacheOptions};
use image::imageops::FilterType;
use reqwest::Client;
-use reqwest_middleware::ClientBuilder;
+use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};
use tokio::task::JoinHandle;
use crate::rt::tokio_runtime;
@@ -16,13 +20,24 @@ pub trait ImageExt {
fn load_url(&mut self, url: Dynamic