queue.push callback is optional