initial queue implementation