implement dataqueue.