implement more function on queue