updated fifo semantics