Queue abstraction