pop must operate as fifo