add enqueue/dequeue functions