add dequeue feature