assume queue exists already