diff --git a/examples/colormaterial_color.rs b/examples/colormaterial_color.rs
index b7e850f281cc3e64cfe3b46bb4dd8a49a194d5ce..0f67bac1b2fcdffda454e74a8b6a8c62fbd3ea6f 100644
--- a/examples/colormaterial_color.rs
+++ b/examples/colormaterial_color.rs
@@ -2,7 +2,7 @@ use bevy::{
     prelude::*,
     sprite::{MaterialMesh2dBundle, Mesh2dHandle},
 };
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 use std::time::Duration;
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
diff --git a/examples/menu.rs b/examples/menu.rs
index eb09eeb343cf7c3286cfa4c0935296932c7d9e36..f9da854b2135e290a55ac008c3b6b2d315da5a2e 100644
--- a/examples/menu.rs
+++ b/examples/menu.rs
@@ -1,6 +1,6 @@
 use bevy::prelude::*;
 use bevy_inspector_egui::WorldInspectorPlugin;
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 use std::time::Duration;
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
diff --git a/examples/sequence.rs b/examples/sequence.rs
index d5b19cf7c0734752e11c996a9fc05c7318153969..375b5d9d5c83d8a5b3d7846c5e46737e839094fb 100644
--- a/examples/sequence.rs
+++ b/examples/sequence.rs
@@ -1,5 +1,5 @@
 use bevy::prelude::*;
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 use std::time::Duration;
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
diff --git a/examples/sprite_color.rs b/examples/sprite_color.rs
index 475573a6591bbbe9dfeba5e18e921289f5141709..959c0f47b891facf07e7027c508923b241656713 100644
--- a/examples/sprite_color.rs
+++ b/examples/sprite_color.rs
@@ -1,5 +1,5 @@
 use bevy::prelude::*;
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     App::default()
diff --git a/examples/transform_rotation.rs b/examples/transform_rotation.rs
index 611535fa9671ef37204614cc30a3d20edea1c8bc..7bd06de4d76cee6bd2a6de7635130c8377a8b4b3 100644
--- a/examples/transform_rotation.rs
+++ b/examples/transform_rotation.rs
@@ -1,5 +1,5 @@
 use bevy::prelude::*;
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     App::default()
diff --git a/examples/transform_translation.rs b/examples/transform_translation.rs
index 73a7ff3faf5c7b1ec7a222c761286b70af1741b5..6c4f9a9156d0033ccddf7bb8f18682265ae2ac51 100644
--- a/examples/transform_translation.rs
+++ b/examples/transform_translation.rs
@@ -1,5 +1,5 @@
 use bevy::prelude::*;
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     App::default()
diff --git a/examples/ui_position.rs b/examples/ui_position.rs
index dd221f079098277b8c712da0c3e60e2b3324a317..ca331c287eeb60032bada6daeb4b3bd405651c98 100644
--- a/examples/ui_position.rs
+++ b/examples/ui_position.rs
@@ -1,5 +1,5 @@
 use bevy::prelude::*;
-use bevy_tweening::*;
+use bevy_tweening::{lens::*, *};
 
 fn main() -> Result<(), Box<dyn std::error::Error>> {
     App::default()
diff --git a/src/lens.rs b/src/lens.rs
index fa6056c187b570b7721a6b14dc834ad89413f1b2..d527b29f0eb22df0ae1cebd0bac0914940a41ff3 100644
--- a/src/lens.rs
+++ b/src/lens.rs
@@ -1,3 +1,5 @@
+//! Collection of predefined lenses for common Bevy components and assets.
+
 use bevy::prelude::*;
 
 /// A lens over a subset of a component.
diff --git a/src/lib.rs b/src/lib.rs
index d70531eca152295a3034d9f568f49eb323415725..6466298b5de556bf0f9ec71591c6ee3406aa50f4 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -112,14 +112,11 @@ use interpolation::Ease as IEase;
 pub use interpolation::EaseFunction;
 pub use interpolation::Lerp;
 
-mod lens;
+pub mod lens;
 mod plugin;
 mod tweenable;
 
-pub use lens::{
-    ColorMaterialColorLens, Lens, SpriteColorLens, TextColorLens, TransformPositionLens,
-    TransformRotationLens, TransformScaleLens, UiPositionLens,
-};
+pub use lens::Lens;
 pub use plugin::{asset_animator_system, component_animator_system, TweeningPlugin};
 pub use tweenable::{Delay, Sequence, Tracks, Tween, Tweenable};
 
@@ -377,7 +374,7 @@ impl<T: Asset> AssetAnimator<T> {
 
 #[cfg(test)]
 mod tests {
-    use super::*;
+    use super::{lens::*, *};
 
     /// Animator::new()
     #[test]
diff --git a/src/tweenable.rs b/src/tweenable.rs
index 84a3e5a2890510406526aa24f73a968795a3164a..a2e9cad06546f54563d3896b7c77a1d8a1d4420f 100644
--- a/src/tweenable.rs
+++ b/src/tweenable.rs
@@ -398,7 +398,7 @@ impl<T> Tweenable<T> for Delay {
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::{TransformPositionLens, TransformRotationLens};
+    use crate::lens::*;
     use std::sync::{Arc, Mutex};
     use std::time::Duration;