Requires fifo implementation before this really #4