use FIFO queue as buffer