add copy fifo function