implement queue with firstlastlist