moved fifo to fifo.h/fifo.c