add fifo and progressive stack functionality