add: generic dequeue class and unit tests