diff --git a/Cargo.toml b/Cargo.toml
index a282260..62c7dee 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,9 +13,13 @@ categories = ["asynchronous", "concurrency"]
readme = "README.md"
[dependencies]
-crossbeam-utils = "0.7.0"
+libc = "0.2.66"
+
+[target.'cfg(windows)'.dependencies]
+winapi = { version = "0.3.8", features = ["processthreadsapi"] }
[dev-dependencies]
crossbeam = "0.7.3"
+crossbeam-utils = "0.7.0"
futures = "0.3.1"
lazy_static = "1.4.0"
diff --git a/src/header.rs b/src/header.rs
index f9aff4f..5882f85 100644
--- a/src/header.rs
+++ b/src/header.rs
@@ -1,10 +1,8 @@
-use std::alloc::Layout;
-use std::cell::Cell;
-use std::fmt;
-use std::sync::atomic::{AtomicUsize, Ordering};
-use std::task::Waker;
-
-use crossbeam_utils::Backoff;
+use core::alloc::Layout;
+use core::cell::UnsafeCell;
+use core::fmt;
+use core::sync::atomic::{AtomicUsize, Ordering};
+use core::task::Waker;
use crate::raw::TaskVTable;
use crate::state::*;
@@ -22,7 +20,7 @@ pub(crate) struct Header {
/// The task that is blocked on the `JoinHandle`.
///
/// This waker needs to be woken up once the task completes or is closed.
- pub(crate) awaiter: Cell