implemented cir queue