diff --git a/lib/examples/fwht_decoder/main.rs b/lib/examples/fwht_decoder/main.rs
index 7f297a6..f8b434b 100644
--- a/lib/examples/fwht_decoder/main.rs
+++ b/lib/examples/fwht_decoder/main.rs
@@ -22,11 +22,12 @@
 use v4l2::{decoder::stateful::GetBufferError, QueueType};
 use v4l2::{
     decoder::{format::fwht::FwhtFrameParser, stateful::SetCaptureFormatRet},
-    device::queue::{qbuf::OutputQueueable, FormatBuilder},
-    memory::{
-        pooled_provider::{PooledHandles, PooledHandlesProvider},
-        MemoryType, UserPtrHandle,
+    device::queue::{
+        handles_provider::{PooledHandles, PooledHandlesProvider},
+        qbuf::OutputQueueable,
+        FormatBuilder,
     },
+    memory::{MemoryType, UserPtrHandle},
 };
 
 use clap::{App, Arg};
diff --git a/lib/examples/fwht_encoder/main.rs b/lib/examples/fwht_encoder/main.rs
index b1139f6..e37655e 100644
--- a/lib/examples/fwht_encoder/main.rs
+++ b/lib/examples/fwht_encoder/main.rs
@@ -12,10 +12,11 @@
         direction::Capture,
         dqbuf::DQBuffer,
         generic::{GenericBufferHandles, GenericQBuffer, GenericSupportedMemoryType},
+        handles_provider::MMAPProvider,
         qbuf::OutputQueueable,
     },
     encoder::*,
-    memory::{MMAPHandle, MMAPProvider, UserPtrHandle},
+    memory::{MMAPHandle, UserPtrHandle},
     Format, QueueType,
 };
 
diff --git a/lib/src/decoder/stateful.rs b/lib/src/decoder/stateful.rs
index 8b75ec7..a4bb9b4 100644
--- a/lib/src/decoder/stateful.rs
+++ b/lib/src/decoder/stateful.rs
@@ -6,6 +6,7 @@
             direction::{Capture, Output},
             dqbuf::DQBuffer,
             generic::{GenericBufferHandles, GenericQBuffer},
+            handles_provider::HandlesProvider,
             qbuf::{
                 get_free::{GetFreeBufferError, GetFreeCaptureBuffer, GetFreeOutputBuffer},
                 CaptureQueueable, QBuffer,
@@ -16,7 +17,7 @@
         AllocatedQueue, Device, DeviceConfig, DeviceOpenError, Stream, TryDequeue,
     },
     ioctl::{self, subscribe_event, BufferCapabilities, FormatFlags, StreamOnError},
-    memory::{BufferHandles, HandlesProvider, PrimitiveBufferHandles},
+    memory::{BufferHandles, PrimitiveBufferHandles},
     Format,
 };
 
diff --git a/lib/src/device/queue.rs b/lib/src/device/queue.rs
index 356b86f..9bea70a 100644
--- a/lib/src/device/queue.rs
+++ b/lib/src/device/queue.rs
@@ -1,6 +1,7 @@
 pub mod direction;
 pub mod dqbuf;
 pub mod generic;
+pub mod handles_provider;
 pub mod qbuf;
 pub mod states;
 
diff --git a/lib/src/memory/pooled_provider.rs b/lib/src/device/queue/handles_provider.rs
similarity index 81%
rename from lib/src/memory/pooled_provider.rs
rename to lib/src/device/queue/handles_provider.rs
index c3b50cc..01f2051 100644
--- a/lib/src/memory/pooled_provider.rs
+++ b/lib/src/device/queue/handles_provider.rs
@@ -4,11 +4,33 @@
     sync::{Arc, Mutex, Weak},
 };
 
-use crate::bindings;
+use crate::{
+    bindings,
+    memory::{BufferHandles, MMAPHandle, PrimitiveBufferHandles},
+    Format,
+};
 
-use super::{BufferHandles, PrimitiveBufferHandles, UserPtrHandle};
+pub trait HandlesProvider: Send + 'static {
+    type HandleType: BufferHandles;
 
-pub type UserBufferHandles<T> = Vec<UserPtrHandle<T>>;
+    fn get_handles(&mut self) -> Option<Self::HandleType>;
+}
+
+pub struct MMAPProvider(Vec<MMAPHandle>);
+
+impl MMAPProvider {
+    pub fn new(format: &Format) -> Self {
+        Self(vec![Default::default(); format.plane_fmt.len()])
+    }
+}
+
+impl HandlesProvider for MMAPProvider {
+    type HandleType = Vec<MMAPHandle>;
+
+    fn get_handles(&mut self) -> Option<Self::HandleType> {
+        Some(self.0.clone())
+    }
+}
 
 /// A handles provider that recycles buffers from a fixed set in a pool.
 /// Provided `PooledHandles` will not be recycled for as long as the instance is
@@ -27,7 +49,7 @@
     }
 }
 
-impl<H: BufferHandles> super::HandlesProvider for PooledHandlesProvider<H> {
+impl<H: BufferHandles> HandlesProvider for PooledHandlesProvider<H> {
     type HandleType = PooledHandles<H>;
 
     fn get_handles(&mut self) -> Option<PooledHandles<H>> {
diff --git a/lib/src/encoder.rs b/lib/src/encoder.rs
index c641298..127e485 100644
--- a/lib/src/encoder.rs
+++ b/lib/src/encoder.rs
@@ -5,6 +5,7 @@
             direction::{Capture, Output},
             dqbuf::DQBuffer,
             generic::{GenericBufferHandles, GenericQBuffer},
+            handles_provider::HandlesProvider,
             qbuf::get_free::{GetFreeBufferError, GetFreeCaptureBuffer, GetFreeOutputBuffer},
             qbuf::{CaptureQueueable, QBuffer},
             BuffersAllocated, CanceledBuffer, CreateQueueError, FormatBuilder, Queue, QueueInit,
@@ -13,7 +14,7 @@
         AllocatedQueue, Device, DeviceConfig, DeviceOpenError, Stream, TryDequeue,
     },
     ioctl::{self, BufferFlags, DQBufError, EncoderCommand, FormatFlags, GFmtError},
-    memory::{BufferHandles, HandlesProvider, PrimitiveBufferHandles},
+    memory::{BufferHandles, PrimitiveBufferHandles},
     Format,
 };
 
diff --git a/lib/src/memory.rs b/lib/src/memory.rs
index 8b2ac0b..8f72579 100644
--- a/lib/src/memory.rs
+++ b/lib/src/memory.rs
@@ -36,8 +36,6 @@
 pub use mmap::*;
 pub use userptr::*;
 
-pub mod pooled_provider;
-
 use crate::{
     bindings,
     ioctl::{PlaneMapping, QueryBufPlane},
@@ -134,9 +132,3 @@
     type HandleType = P;
     const MEMORY_TYPE: Self::SupportedMemoryType = P::Memory::MEMORY_TYPE;
 }
-
-pub trait HandlesProvider: Send + 'static {
-    type HandleType: BufferHandles;
-
-    fn get_handles(&mut self) -> Option<Self::HandleType>;
-}
diff --git a/lib/src/memory/mmap.rs b/lib/src/memory/mmap.rs
index 74480f0..91818ba 100644
--- a/lib/src/memory/mmap.rs
+++ b/lib/src/memory/mmap.rs
@@ -1,6 +1,6 @@
 //! Operations specific to MMAP-type buffers.
 use super::*;
-use crate::{bindings, ioctl, Format};
+use crate::{bindings, ioctl};
 use std::fmt::Debug;
 
 #[derive(Default)]
@@ -30,19 +30,3 @@
         Some(ioctl::mmap(device, plane_info.mem_offset, plane_info.length).ok()?)
     }
 }
-
-pub struct MMAPProvider(Vec<MMAPHandle>);
-
-impl MMAPProvider {
-    pub fn new(format: &Format) -> Self {
-        Self(vec![Default::default(); format.plane_fmt.len()])
-    }
-}
-
-impl super::HandlesProvider for MMAPProvider {
-    type HandleType = Vec<MMAPHandle>;
-
-    fn get_handles(&mut self) -> Option<Self::HandleType> {
-        Some(self.0.clone())
-    }
-}
