diff --git a/Cargo.toml b/Cargo.toml
index b74163c..69eea51 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,10 +14,13 @@ travis-ci = { repository = "MingweiSamuel/Riven" }
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+[features]
+nightly = [ "parking_lot/nightly" ]
+
[dependencies]
log = "0.4"
num_enum = "0.4"
-parking_lot = { version = "0.9", features = [ "nightly" ] }
+parking_lot = "0.9"
reqwest = { version = "0.10.0-alpha.1", features = [ "gzip", "json" ] }
scan_fmt = { version = "0.2", default-features = false }
serde = { version = "1.0", features = [ "derive" ] }
diff --git a/src/consts/champion.rs b/src/consts/champion.rs
index e16f471..6c92390 100644
--- a/src/consts/champion.rs
+++ b/src/consts/champion.rs
@@ -14,7 +14,7 @@ use strum_macros::{ EnumString, Display, AsRefStr, IntoStaticStr };
///
/// The documentation of each variant specifies:
/// NAME (`IDENTIFIER`, ID).
-#[non_exhaustive]
+#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(IntoPrimitive, TryFromPrimitive)]
#[derive(Serialize_repr, Deserialize_repr)]
diff --git a/src/consts/game_mode.rs b/src/consts/game_mode.rs
index 1b99744..320c68d 100644
--- a/src/consts/game_mode.rs
+++ b/src/consts/game_mode.rs
@@ -10,7 +10,7 @@ use strum_macros::{ EnumString, Display, AsRefStr, IntoStaticStr };
/// League of Legends game mode, such as Classic,
/// ARAM, URF, One For All, Ascension, etc.
-#[non_exhaustive]
+#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash)]
#[derive(EnumString, Display, AsRefStr, IntoStaticStr)]
diff --git a/src/consts/map.rs b/src/consts/map.rs
index 624c235..27da758 100644
--- a/src/consts/map.rs
+++ b/src/consts/map.rs
@@ -10,7 +10,7 @@ use serde_repr::{ Serialize_repr, Deserialize_repr };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends maps.
-#[non_exhaustive]
+#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
#[derive(Serialize_repr, Deserialize_repr)]
diff --git a/src/consts/queue.rs b/src/consts/queue.rs
index 78e3495..d05742c 100644
--- a/src/consts/queue.rs
+++ b/src/consts/queue.rs
@@ -10,7 +10,7 @@ use serde_repr::{ Serialize_repr, Deserialize_repr };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends matchmaking queue.
-#[non_exhaustive]
+#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq)]
#[derive(Serialize_repr, Deserialize_repr)]
diff --git a/src/consts/queue_type.rs b/src/consts/queue_type.rs
index c9e33bf..2fe4e1f 100644
--- a/src/consts/queue_type.rs
+++ b/src/consts/queue_type.rs
@@ -1,7 +1,7 @@
use strum_macros::{ EnumString, Display, AsRefStr, IntoStaticStr };
/// LoL or TFT ranked queue types.
-#[non_exhaustive]
+#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash)]
#[derive(EnumString, Display, AsRefStr, IntoStaticStr)]
diff --git a/src/consts/season.rs b/src/consts/season.rs
index 086bd0f..2d32136 100644
--- a/src/consts/season.rs
+++ b/src/consts/season.rs
@@ -10,7 +10,7 @@ use serde_repr::{ Serialize_repr, Deserialize_repr };
use num_enum::{ IntoPrimitive, TryFromPrimitive };
/// League of Legends matchmaking seasons.
-#[non_exhaustive]
+#[cfg_attr(feature = "nightly", non_exhaustive)]
#[derive(Debug, Copy, Clone)]
#[derive(Eq, PartialEq, Hash, PartialOrd, Ord)]
#[derive(Serialize_repr, Deserialize_repr)]
diff --git a/src/lib.rs b/src/lib.rs
index 2184547..4876c67 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,9 +1,10 @@
-#![feature(non_exhaustive)]
-#![feature(external_doc)]
+#![cfg_attr(feature = "nightly", feature(non_exhaustive))]
+#![cfg_attr(feature = "nightly", feature(external_doc))]
#![forbid(unsafe_code)]
-#![doc(include = "../README.md")]
+#![cfg_attr(feature = "nightly", doc(include = "../README.md"))]
+#![cfg_attr(not(feature = "nightly"), doc("See [README.md](https://github.com/MingweiSamuel/Riven#----riven--------------------)."))]
mod config;
pub use config::RiotApiConfig;
diff --git a/src/req/regional_requester.rs b/src/req/regional_requester.rs
index b8e5f95..e09b327 100644
--- a/src/req/regional_requester.rs
+++ b/src/req/regional_requester.rs
@@ -41,7 +41,8 @@ impl RegionalRequester {
-> impl Future